我有像 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/