网址重写问题

时间:2011-02-17 01:22:34

标签: apache .htaccess mod-rewrite

我正在尝试将/?page = pagename等任何请求映射到此/html/pagename.html(与人们通常所做的相反),例如,如果请求是mydomain.com/?page= home然后我希望我的服务器返回此文件:/html/home.html 我尝试了这个规则,但是给出了我的错误500:

RewriteRule ?page=(.*) /html/$1.html [NC]

任何想法的人?

1 个答案:

答案 0 :(得分:2)

试试这个:

RewriteCond %{QUERY_STRING} page=(.*)
RewriteRule .* /html/%1.html [NC]

RewriteRule只匹配并重写URI。查询字符串(问号后面的内容)不是URI的一部分,因此它永远不会与RewriteRule模式匹配。当查询字符串与某些内容匹配时,您必须使用RewriteCond来有条件地评估规则(在这种情况下,在每个URI上)。