首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个文件的.htaccess重定向

一个文件的.htaccess重定向
EN

Webmasters Stack Exchange用户
提问于 2017-09-28 20:25:25
回答 1查看 66关注 0票数 1

不知怎么的,我的一个错误的URL被Google索引了。即:

代码语言:javascript
复制
www.example.com/index.php/ 

我所要做的就是将它重定向到相同的URL,而不需要最后的/。我有下面这些似乎很好用的东西。我只想再次检查一下,这只会影响www.example.com/index.php/,也不会影响其他任何东西,比如子文件夹中的index.php等等。

代码语言:javascript
复制
Redirect 301 /index.php/ /index.php
EN

回答 1

Webmasters Stack Exchange用户

回答已采纳

发布于 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

代码语言:javascript
复制
RedirectMatch 301 ^/index\.php. /index.php

RedirectMatch指令接受正则表达式。模式上的尾随未转义的. (点)匹配任何字符。

如果您希望只匹配/index.php/ (完全正确),那么将其更改为:

代码语言:javascript
复制
RedirectMatch 301 ^/index\.php/$ /index.php

注意:这是假设您还没有使用mod_rewrite (即。( RewriteRule)用于其他重定向/重写。最好不要将两个模块的重定向混合在一起,以避免潜在的冲突。

有效文件名末尾的/ (或/something)称为附加路径名信息(又称路径信息/ PATH_INFO)。

如果将来希望阻止所有包含路径信息的请求,那么可以向服务器配置(或.htaccess文件)添加以下指令:

代码语言:javascript
复制
AcceptPathInfo Off

这将导致所有包含路径信息的请求产生404。

但是,请记住,有些CMS使用路径信息来路由URL。

票数 1
EN
页面原文内容由Webmasters Stack Exchange提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webmasters.stackexchange.com/questions/109707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档