我正在尝试将/?page = pagename等任何请求映射到此/html/pagename.html(与人们通常所做的相反),例如,如果请求是mydomain.com/?page= home然后我希望我的服务器返回此文件:/html/home.html 我尝试了这个规则,但是给出了我的错误500:
RewriteRule ?page=(.*) /html/$1.html [NC]
任何想法的人?
答案 0 :(得分:2)
试试这个:
RewriteCond %{QUERY_STRING} page=(.*)
RewriteRule .* /html/%1.html [NC]
RewriteRule
只匹配并重写URI。查询字符串(问号后面的内容)不是URI的一部分,因此它永远不会与RewriteRule
模式匹配。当查询字符串与某些内容匹配时,您必须使用RewriteCond
来有条件地评估规则(在这种情况下,在每个URI上)。