2015-10-05 140 views
1

在我的网站,这些是相同的:301重定向到页码

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

所以我做301重定向像这样(的目标是只为第1页将此):

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

这工作得很好,如果第一页,但这里有两个问题:

  • http://example.com/tags/cloud/?id=foo( cloud)
  • 该规则对每个以1开头的页码执行,而不仅仅是page1。所以/cloud/page124?id=foo变成/cloud/24?id=foo等等。

这两个问题怎么解决?该规则仅适用于page1。

回答

1

为什么不是之前包含`页可选/这样的:

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

确保测试这种变化之前,清除浏览器缓存。

+0

谢谢,但page1没有用作传统参数,所以它从来没有?在它之前。第1页从来没有/之后,id = foo参数是完全可选的。 – Yeti

+0

对不起,应该试过。它现在适用于page11,page123,page1000等。很酷!但云后(页1)仍然有一个正斜杠 - tags/cloud /?id = foo。它会正常工作,但隐藏它太费力了吗? – Yeti

+0

虽然机会很渺茫,但是,页面可能会在一开始。如果某人的姓名是“页面”,它将在一开始! – Yeti