2011-02-17 129 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)。