Php 更改服务器后Htaccess代码不工作

Php 更改服务器后Htaccess代码不工作,php,regex,.htaccess,mod-rewrite,http-status-code-301,Php,Regex,.htaccess,Mod Rewrite,Http Status Code 301,我在htaccess中使用此代码将任何目录剥离到index.php RewriteRule ^.(index.+?\.php)$ /$1 [L,NC,R=301] 比如说 http://www.example.com/toys/index.php http://www.example.com/battery/upload/index.php http://www.example.com/xyz/photos/index.php 它正在改变将所有这些文件重定向到 http://www.exa

我在htaccess中使用此代码将任何目录剥离到index.php

RewriteRule ^.(index.+?\.php)$ /$1 [L,NC,R=301] 
比如说

http://www.example.com/toys/index.php
http://www.example.com/battery/upload/index.php
http://www.example.com/xyz/photos/index.php
它正在改变将所有这些文件重定向到

http://www.example.com/index.php
现在,当我改变我的服务器-这段代码导致404页
是否有其他修改建议重新修改代码,以便在域之后和索引之前剥离任何行或目录。php

如果我理解正确,这应该可以完成以下工作:

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

另外,我喜欢这个工具来测试我的重写规则:

要为
管理员
文件夹创建异常,您可以执行以下操作:

RewriteRule ^(?!administrator/).+?(index\.php)$ /$1 [L,NC,R=301]

检查vhost并确保AllowOverride已打开(从而允许处理.htaccess文件)。检查.htaccess文件是否正在被解析的一种简单方法是在其中写入大量无意义的内容。如果你没有得到一个500错误,它就没有被使用。同时检查是否安装并启用了重写模块。您好-检查是否启用了重写模式。此外,其他htaccess代码字符串也在工作,除了问题中提到的一个,您是否应该使用
RewriteRule^.+?(index\.php)$/$1[L,NC,R=301]
?谢谢Anubhava,仔细观察发现,该规则也应用于后端管理员部分-由于未找到哪个组件-发生404和500错误。如何创建一个例外,使管理员文件夹不会因为相同的原因而受到影响。否-这不是原因。此代码导致错误-此网页有重定向循环,错误太多重定向。谢谢