Php htaccess重写规则同一域
我在.htaccess文件上有一个url重写问题。该文件中有两条规则: 规则1//当用户在浏览器上打开“example.com/test.php”时,用户将被重定向到“example.com/test” 规则2//当用户打开“example.com/test”时,我们将从“example.com/test.php”检索内容 现在这些规则不起作用了,也许在某个地方有冲突。Php htaccess重写规则同一域,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我在.htaccess文件上有一个url重写问题。该文件中有两条规则: 规则1//当用户在浏览器上打开“example.com/test.php”时,用户将被重定向到“example.com/test” 规则2//当用户打开“example.com/test”时,我们将从“example.com/test.php”检索内容 现在这些规则不起作用了,也许在某个地方有冲突。 对于上述条件,我应该使用哪些重写规则?这两个规则彼此冲突。一个将test.php写入test,另一个将test写入test.p
对于上述条件,我应该使用哪些重写规则?这两个规则彼此冲突。一个将test.php写入test,另一个将test写入test.php,这可能会使您处于无限循环中,无论是在重写引擎中还是在浏览器和服务器之间,这取决于您如何实现重写 为了解决这个问题,我使用了一个条件来检查请求的URI,而不是当前重写的URI 试试这个:
RewriteRule ^test/$ test.php [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^\ ]*)\.php[?\ ]
RewriteRule ^test\.php(.*)$ http://example.com/test/$1 [R=301,NC]
需要注意的几件事也可能是一些因素:
test.php
中没有逃过一点htaccess rule: RewriteRule ^test/ test.php [NC]
RewriteRule ^test/$ test.php [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^\ ]*)\.php[?\ ]
RewriteRule ^test\.php(.*)$ http://example.com/test/$1 [R=301,NC]