301重定向到页码

时间:2015-10-05 16:00:23

标签: regex apache .htaccess mod-rewrite

在我的网站上,这些是相同的:

http://example.com/tags/cloud/page1?id=foo
http://example.com/tags/cloud?id=foo

所以我正在做这样的301重定向(目标是仅将此应用于 page1 ):

RewriteRule ^(.*)page1(.*)$ /$1$2 [R=301,L]

这适用于第1页,但有两个问题:

  • http://example.com/tags/cloud/?id=foo(之后有正向斜线 云)
  • 规则对每个以1开头的页码执行,而不仅仅是page1。因此/cloud/page124?id=foo变为/cloud/24?id=foo,依此类推。

如何解决这两个问题?该规则应仅适用于page1。

1 个答案:

答案 0 :(得分:1)

为什么不在这样的页面之前包含一个可选的/

RewriteRule ^(?:(.+)/)?page1/?$ /$1 [L,NC,R=301] 

确保在测试此更改之前清除浏览器缓存。