2015-10-05 212 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