目前我正在更新我的网站,我想更改指向example.com/test.php
到example.com/test
等非扩展链接的所有链接。这个解决方案我发现我输入了.htaccess文件:
RewriteCond %{THE_REQUEST} ^GET\ /(([^/?]*/)*[^/?]+)\.php
RewriteRule ^.+\.php$ /%1 [L,R=301]
但与此同时,我需要对位于我的网站下层的链接进行重定向,例如example.com/level/test2.php
到example.com/test2.php
。
我应该在.htaccess中写什么来将我的文件从较低级别重定向到更高级别并同时删除.php扩展名?
答案 0 :(得分:0)
你需要将你的分组和反向引用分开,而不是整个事物:
RewriteCond %{THE_REQUEST} ^GET\ /([^/?]*/)*([^/?]+)\.php
RewriteRule ^.+\.php$ /%2 [L,R=301]
基本上,/(([^/?]*/)*[^/?]+)\.php
更改为([^/?]*/)*([^/?]+)
,然后%1
更改为规则目标中的%2
。