此重写规则适用于删除.php扩展名,但在查询字符串中传递文件名的情况下,它也会尝试删除扩展名。如何让它忽略查询字符串?
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
答案 0 :(得分:1)
您需要使重写条件中的(.*)
匹配更严格。现在,它匹配URI 或查询字符串。尝试:
RewriteCond %{THE_REQUEST} ^GET\ ([^\?]+)\.php
RewriteRule (.*)\.php$ $1 [R=301]
[^\?]+
将匹配任何非?
的内容。删除\ HTTP
可确保查询字符串可以跟随.php
。