从URL

2013-03-25 27 views
0

删除多个实例的index.php我知道如何从规则在.htaccess删除的index.php:从URL

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

但我不知道当我看到这在我的404个原木做什么:

video/index.php 
video/index.php/index.php 
video/index.php/index.php/index.php 
video/index.php/index.php/index.php/index.php 

有没有办法去掉所有这些而不必拼出每一个呢?就像我可以循环通过重写规则,以不断删除index.php,直到它消失了?

非常感谢, 菲尔

回答

1

嗯。奇怪的是,人们实际上要求这种URI。

试试这个:

RewriteRule ^(.*)\/index\.php$ $1 [R=301,L,NC] 

这应该重复删除任何index.phpREQUEST_URI结束提到,并重定向到正确的。但是,请注意,它会每次重定向直到它消失。

另外请注意,我还没有测试过,因为我的电脑目前不工作(虽然规则似乎基本足以分享)。如果您遇到任何问题,请让我知道。

+0

噢,你会希望这是你的条件后的第一条规则。 – 2013-03-25 15:47:03

+0

非常感谢!奇迹般有效。而且我其实还有一些更疯狂的网址(我认为有些脚本会导致它,无论是在我的网站上还是某种抓取网站上),例如http://www.mydomain.com/www.mydomain.com/www.mydomain .com/video/video1/index.php/index.php/index.php所以我除了你的代码还加入了它,它似乎工作:RewriteRule ^(。*)www \ .mydomain \ .com \/(。*)$ 1 $ 2 [R = 301,L,NC] – philraymond 2013-03-25 23:00:58

+0

很高兴知道它适用于您。 :) – 2013-03-26 04:39:43