Apache 410 不影响子路径的 URL

Apache 410 不影响子路径的 URL

我正在尝试删除一个 URL,因此在我的.htaccess文件中输入了:

Redirect    410 /my-path

有用。

如果我尝试访问:

https://www.example.com/my-path

我得到:

已消失
所请求的资源在此服务器上不再可用,并且没有转发地址。请删除对此资源的所有引用。

问题是它也会影响所有子路径,所以如果我尝试访问https://www.example.com/my-path/sub-path,我也会收到上述“Gone”消息。

我怎样才能通过 410 删除通向我的网站的一条特定路径?

答案1

您需要使用RedirectMatch指令来代替,它使用正则表达式进行匹配,而不是前缀匹配:

RedirectMatch 410 ^/my-path/?$

但是,如果您已经使用 mod_rewrite 进行其他重定向/重写,那么您可能应该改用 mod_rewrite 以避免潜在的冲突。例如,在文件顶部附近.htaccess

RewriteRule ^my-path/?$ - [G]

G是 的快捷方式R=410

参考:

相关内容