0

此重写规则可以很好地删除 .php 扩展名,但在查询字符串中传递文件名的情况下,它也会尝试删除那里的扩展名。如何让它忽略查询字符串?

RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
4

1 回答 1

1

您需要使(.*)重写条件中的匹配更加严格。现在,它正在匹配 URI查询字符串。尝试:

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

[^\?]+匹配任何不是?. 删除\ HTTP确保查询字符串可以跟在.php.

于 2012-12-10T03:12:00.147 回答