.htaccess 301重定向问题

时间:2011-01-12 07:52:53

标签: .htaccess url-rewriting redirect http-status-code-301

我无法在.htaccess中编写遵循以下问题的规则。这就是我需要的。

当URL就是这个

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

它应该301重定向到这个

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

你能告诉我怎么做吗?

由于

1 个答案:

答案 0 :(得分:4)

-----编辑和测试答案----------

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]
  • RewriteRule仅匹配url部分,而不是查询字符串。因此,RewriteCond用于匹配查询字符串。
  • 请注意,来自网址的匹配项用作$ N,查询字符串中的匹配项用作%N
  • 在重写的网址末尾有一个问号。这可以防止将原始查询字符串添加到新重写的URL中。

对于任意数量的子类:

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]