301重定向获得分页

时间:2013-07-03 16:27:43

标签: .htaccess mod-rewrite rewrite http-status-code-301

我正在尝试将分页博客列表从旧网站重定向到新网址。

我觉得我与RewriteRule的关系非常接近,但我还没到那里,这就是我所拥有的:

RewriteCond %{QUERY_STRING} ^page=
RewriteRule ^(blog)?$ http://www.newdomain.com/news/page/$1? [R=301,L]

如果我去

,请使用此规则
http://www.olddomain.com/blog?page=1

我目前被重定向到

http://www.newdomain.com/news/page/blog

我想被发送到

http://www.newdomain.com/news/page/1

我确信它只是一些小而简单的东西,我不知道。

修改

扩展下面的解决方案,我使用$ 1为重写规则添加了标签/类别支持。

RewriteCond %{QUERY_STRING} ^page=([^&]+) [NC]
RewriteRule ^blog/tag/([^/\.]+)?$ http://www.newdomain.com/news/tag/$1/page/%1? [R=301,L,NC]

1 个答案:

答案 0 :(得分:2)

您的代码中很少有小错误。

  1. 您需要首先从查询字符串中捕获页面参数的值
  2. 然后使用%代替$1
  3. 来使用该捕获值
  4. 无需捕获blog,因为您不需要它。
  5. 使用以下代码更改您的代码:

    RewriteCond %{QUERY_STRING} ^page=([^&]+) [NC]
    RewriteRule ^blog/?$ http://www.newdomain.com/news/page/%1? [R=301,L,NC]