.htaccess 从URL末尾重定向/index.php
有一个包含子页面的网站,所有子页面均采用以下格式:.htaccess 从URL末尾重定向/index.php,.htaccess,url,url-rewriting,canonicalization,.htaccess,Url,Url Rewriting,Canonicalization,有一个包含子页面的网站,所有子页面均采用以下格式: mydomain.com/something 那很好。但不好的是,您也可以执行mydomain.com/something/index.php(您可以在浏览器中输入此格式的地址),但仍然可以在mydomain.com/something上获取内容 我不希望这两种可能性同时出现,谷歌不喜欢这样。我只希望有一个是可能的 所以我想做的是,每当你在浏览器中键入mydomain.com/something/index.php,你就会被重定向到mydom
mydomain.com/something
那很好。但不好的是,您也可以执行mydomain.com/something/index.php
(您可以在浏览器中输入此格式的地址),但仍然可以在mydomain.com/something
上获取内容
我不希望这两种可能性同时出现,谷歌不喜欢这样。我只希望有一个是可能的
所以我想做的是,每当你在浏览器中键入mydomain.com/something/index.php
,你就会被重定向到mydomain.com/something
(最后没有/index.php
)
我应该如何编写.htaccess代码来执行类似操作?将以下行添加到网站根目录中的.htaccess中
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*?)/?index.php$ /$1 [R=301,L,NC,QSA]
注意:第一个条件确保之前不进行重定向(以防止重定向循环)Mordor:
您可以在.htaccess文件中尝试此操作:
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
您的解决方案使
mydomain.com/anything/index.php
进入主页,进入mydomain.com
,这不是我的心愿。我需要它去mydomain.com/anything
(所以基本上我需要的是/index.php
被“转义”)你的.htaccess中还有什么其他规则,一定有一些冲突。只有www
到非www
重定向,哦,再加上这个重写cond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则!\。(pdf | js | ico | gif | jpg | png | css | rar | zip | tar\.gz)$index.php[L]
哦,是的,现在当我删除上面的行时,您的解决方案就可以工作了(那RewriteCond%{REQUEST|u FILENAME}!-f…
,但不幸的是,mydomain.com/something使/something页面成为404-我需要前面的行,不能删除它们…在这些指令之前添加我的答案中的代码,这应该可以解决它