2011-01-12 164 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