0

我知道如何从 .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 直到它消失吗?

非常感谢,菲尔

4

1 回答 1

1

嗯。奇怪的是人们实际上会请求这种 URI。

试试这个:

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

这应该从 . 末尾重复删除任何index.php提及REQUEST_URI,并重定向到正确的提及。但是请注意,它每次都会重定向,直到它消失。

另请注意,我尚未对其进行测试,因为我的 PC 目前无法正常工作(尽管该规则似乎足够基本可以分享)。如果您遇到任何问题,请告诉我。

于 2013-03-25T15:45:51.020 回答