从url中删除多个index.php实例

时间:2013-03-25 12:35:59

标签: .htaccess rewrite

我知道如何从.htaccess中的规则中删除index.php:

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 个答案:

答案 0 :(得分:1)

嗯。很奇怪人们实际上要求那种URI。

尝试一下:

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

这应该重复删除index.php末尾的所有REQUEST_URI提及,并重定向到正确的提及。但请注意,它会在每次重定向直到它消失为止。

还要注意,我还没有测试过,因为我的电脑目前还没有工作(虽然规则看起来基本足以分享)。如果您遇到任何问题,请告诉我。