不知怎么的,我的一个错误的URL被Google索引了。即:
www.example.com/index.php/ 我所要做的就是将它重定向到相同的URL,而不需要最后的/。我有下面这些似乎很好用的东西。我只想再次检查一下,这只会影响www.example.com/index.php/,也不会影响其他任何东西,比如子文件夹中的index.php等等。
Redirect 301 /index.php/ /index.php发布于 2017-09-29 09:46:43
重定向301 /index.php/ /index.php
这个很好用。它不会影响子目录中的任何其他index.php。然而,它将不仅仅重定向/index.php/。Redirect指令(mod_alias的一部分)是前缀匹配,因此上面的Redirect也将匹配/index.php/<something>。以及赛后的一切。<something>,被复制到目标URL的末尾。但是,由于您忽略了目标URL中的尾斜杠,这将成为/index.php<something>,这很可能导致404。
/index.php/<something>会导致404 (相对于有效请求)这一事实可能是一件好事,因为您不想冒被索引的/index.php/<something> (或目标)的风险。但是,您可以更改这一点,这样/index.php<something> (其中<something>是/或/<anything>)只需使用RedirectMatch指令重定向到/index.php:
RedirectMatch 301 ^/index\.php. /index.phpRedirectMatch指令接受正则表达式。模式上的尾随未转义的. (点)匹配任何字符。
如果您希望只匹配/index.php/ (完全正确),那么将其更改为:
RedirectMatch 301 ^/index\.php/$ /index.php注意:这是假设您还没有使用mod_rewrite (即。( RewriteRule)用于其他重定向/重写。最好不要将两个模块的重定向混合在一起,以避免潜在的冲突。
有效文件名末尾的/ (或/something)称为附加路径名信息(又称路径信息/ PATH_INFO)。
如果将来希望阻止所有包含路径信息的请求,那么可以向服务器配置(或.htaccess文件)添加以下指令:
AcceptPathInfo Off这将导致所有包含路径信息的请求产生404。
但是,请记住,有些CMS使用路径信息来路由URL。
https://webmasters.stackexchange.com/questions/109707
复制相似问题