apache - 如何在 htaccess 中使用 IF 为某些 URL 设置状态代码

标签 apache .htaccess http-headers apache2.4 response-headers

我有像 https://example.com/page/1234/https://example.com/page/9876/ 这样的 URL。对于这些 URL,我想通过 htaccess (Apache 2.4) 设置某些状态代码。

我试着用

<If "%{REQUEST_URI} =~ (1234|9876)\/$">
    Header set Status "HTTP/1.1 410 Gone"
</If>

但我的代码似乎有错误,因为我没有在开发人员工具中看到新的状态代码作为响应。正确的做法应该怎样做?

PS:我不能使用“rewriteRule”——这种设置 410 会触发 ErrorDocument,这是我不想要的。对于这两个 URL,我只想设置状态代码。对于以 native 方式获得 410 的其他 URL,应触发 ErrorDocument。

最佳答案

您可以将此 block 与 <If> 一起使用使用默认 ErrorDocument 410 的表达式对于特定的 URL 模式:

RewriteEngine On

<If "%{REQUEST_URI} =~ m#/(1234|9876)/?$#">
    # only for above URL disable ErrorDocument
    ErrorDocument 410 default
    # set status=410
    RewriteRule . - [L,G]
</If>

关于apache - 如何在 htaccess 中使用 IF 为某些 URL 设置状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66695748/

相关文章:

apache - Tomcat Web 应用程序无法启动

apache - chrome 不信任 https 并显示 ERR_SSL_SERVER_CERT_BAD_FORMAT

PHP 脚本使服务器过载

php - 子目录中的 htaccess 重写库

javascript - 检查网站是否正在使用 javascript 发出 X http 请求

javascript - 在 Google Apps 脚本中获取 NWS API 500 错误

python - 当已经托管 rstudio 和 rapache 时,将 django 站点添加到 ubuntu 上的 apache2

php - 如果文件夹不存在重写?

php - 通过 PHP 进行 HTTP 身份验证注销

python - 在 Python 中使用带有授权 HTTP header 的 GET 和 POST