我的httpd conf文件中有这个重写规则:
RewriteRule (.*?)\.html $1.php?%{QUERY_STRING} [NC]
工作得很好。但是,当我将它放入同一个虚拟主机的.htaccess时,它现在返回整个文档路径,而不是http主机。它需要做的就是用“php”替换“html”。
我显然不明白.htaccess如何使用重写规则。
答案 0 :(得分:1)
您需要在规则的目标中添加一个前导斜杠:
RewriteRule (.*?)\.html /$1.php?%{QUERY_STRING} [NC]
此外,您还可以删除目标中的?%{QUERY_STRING}
位。如果没有?,则会自动附加查询字符串。
答案 1 :(得分:0)
我的眼睛几乎流血看着那件丑陋的东西......
RewriteRule ^(.*).html?(.*)$ $1\.php?$2 [NC]
答案 2 :(得分:0)
RewriteRule ^(.*)\.html$ $1.php [nc]