mod_rewrite在移动到.htaccess时表现得很奇怪

时间:2012-07-19 06:00:46

标签: apache .htaccess mod-rewrite

我的httpd conf文件中有这个重写规则:

RewriteRule (.*?)\.html $1.php?%{QUERY_STRING} [NC]

工作得很好。但是,当我将它放入同一个虚拟主机的.htaccess时,它现在返回整个文档路径,而不是http主机。它需要做的就是用“php”替换“html”。

我显然不明白.htaccess如何使用重写规则。

3 个答案:

答案 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]