2011-02-17 132 views
2

我试图将/?page = pagename这样的任何请求映射到这个/html/pagename.html(与人们通常做的相反),例如,如果请求是mydomain.com/ ?页=家里那么我希望我的服务器返回此文件:/html/home.html 我想这条规则,但给我的错误500:url重写问题

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

任何人的想法?

回答

2

试试这个:

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

RewriteRule比赛,只有重写的URI。查询字符串(问号后面的内容)不是URI的一部分,因此它永远不会匹配RewriteRule模式。当查询字符串匹配某个内容时,您必须使用RewriteCond来有条件地评估规则(在本例中为每个URI)。