2

现在我正在更新我的网站,我想将所有链接更改为非扩展链接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 扩展名?

4

1 回答 1

1

您需要分开您的分组并反向引用第二个,而不是全部:

RewriteCond %{THE_REQUEST} ^GET\ /([^/?]*/)*([^/?]+)\.php
RewriteRule ^.+\.php$ /%2 [L,R=301]

本质上,/(([^/?]*/)*[^/?]+)\.php改为([^/?]*/)*([^/?]+),然后在规则的目标中%1改为。%2

于 2012-10-12T03:59:45.440 回答