2012-09-12 25 views
0

我有一個工作重寫規則Apache Mod重寫規則與?像谷歌即HL = EN

RewriteRule ^category/?(.*)/([0-9]+)/([0-9]+)/([a-z]+)-([0-9]+)$ category.php?%{QUERY_STRING}&id=$2&paginate=$3&sort=$4&page=$5 [L]

加工URL的樣子:

www.mysite.com/category/hockey/10/18/recent-3

現在我想我URL到看起來像:

www.mysite.com/category/hockey?id=10&paginate=18&sort=recent-3

我曾嘗試:

RewriteRule ^category/?(.*)?id=([0-9]+)&paginate=([0-9]+)&sort=([a-z]+)-([0-9]+)$ category.php?%{QUERY_STRING}&id=$2&paginate=$3&sort=$4&page=$5 [L]

,但我不能使它工作。

任何想法?

回答

2

您無法與RewriteRule中的查詢字符串(網址中的?之後的所有內容)匹配。您可以使用%做對%{QUERY_STRING}變量,反向引用:

RewriteCond %{QUERY_STRING} ^id=([0-9]+)&paginate=([0-9]+)&sort=([a-z]+)-([0-9]+)$ 
RewriteRule ^category/?(.*) category.php?id=%1&paginate=%2&sort=%3&page=%4 [L] 
+0

啊,這就是爲什麼! :)喬恩,謝謝你的解釋和你的回答!它像預期的那樣工作! –