2011-01-12 138 views
0

我在爲.htaccess中的以下問題編寫規則時遇到問題。這是我需要的。.htaccess 301重定向問題

WHEN URL IS THIS

www.mysite.com/cat/2011/subcat1/subcat2/product.htm?page=2 

它應該301重定向到該

www.mysite.com/cat/2011/subcat1/subcat2/product/2.htm 

能否請你告訴我如何做到這一點?

感謝

回答

4

----- EDITED和測試答案----------

RewriteEngine On 
RewriteCond %{QUERY_STRING} page=(\d+) 
RewriteRule ^cat/(\d+)/([^/]+)/([^/]+)/product\.htm http://www.mysite.com/cat/$1/$2/$3/product/%1.htm? [R=301,L] 
  • 重寫規則匹配的只有網址的一部分,而不是查詢字符串。所以,RewriteCond用於匹配查詢字符串。
  • 請注意,url中的匹配項用作$ N,並且查詢字符串中的匹配項用作%N
  • 重寫的url的末尾有一個問號。這可以防止將原始查詢字符串添加到新重寫的url中。

對於任何數量的subcats的:

RewriteEngine On 
RewriteCond %{QUERY_STRING} page=(\d+) 
RewriteRule ^cat/(\d+)/(.+)/product\.htm http://www.mysite.com/cat/$1/$2/product/%1.htm? [R=301,L] 
+0

感謝。讓我試試這個,然後我會回來。 – Ali 2011-01-12 09:41:48