2016-01-21 201 views
1

我試着找我的問題,但我已經找到了答案,最近沒有工作 - 尤其是因爲我很新的編輯.htaccess文件。重寫規則多301重定向

我有一個已經編程動態生成網頁的副本,以適應位置的網站。例如,example.com/help/work/成立,使約100重複看起來像這樣的:example.com/help/work/?city=Washington&state=DC城市和國家,每個page.There動態變化噸的這些變化,我想301重定向所有城市和狀態參數的頁面所以他們指向原始頁面(example.com/help/work/)。

經過一番研究,我能找到一個重寫規則,幫助我做到這一點通過網頁基礎的網頁上,但只能用網頁:

RewriteCond %{QUERY_STRING} ^city=Philadelphia&state=PA$ 
RewriteRule ^$ http://example.com/? [R=301,L] 

與所有的說,我有兩個部分問題:

  1. 有沒有辦法寫這個,使其目標子目錄頁? (我只能讓它做索引)
  2. 有沒有一種方法可以在單個RewriteRule中使用通配符(。*),所以example.com/help/work/?city=Washington&state=DC及其所有城市/州的變體都指向原始頁面(example.com/help/work/)?

回答

0

我對你的要求有點迷茫。看起來你想要指出每個城市和國家這個單一頁面。 http://example.com/help/work/看看這是你在找什麼。

RewriteCond %{QUERY_STRING} city=.+&state=.+ 
RewriteRule ^([^/]+)/([^/]+)/?$ http://example.com/$1/$2/? [R=301,L] 
+0

謝謝!爲了澄清一點,這裏有什麼,我試圖做一個更好的例子: 現在我有如example.com,example.com/idea/good/和example.com/help/work頁面。這些是我希望所有人都能看到的原始的,規範的頁面。 也有複製這些頁面,並增加了「城市/州」參數生成的頁面。因此,我列出的每個url示例都有大約100個變體動態地創建了url。我試圖讓所有的城市/州頁面都重定向到它們各自的規範頁面。那有意義嗎? – WyGuy

+0

只是爲了提供更多的見解,這是我一直在嘗試的另一個。我在正確的軌道上嗎? RewriteCond%{QUERY_STRING}^city =。*&state =。* $ RewriteRule^help/work/$ http://example.com/help/work/$1 [R = 301,L] – WyGuy

+0

好的,我更新了我的回答是我想你想澄清的。請看看這是否適合你。 –

0

是的,您可以在Rewrite規則中使用正則表達式捕獲組來捕獲request_uri。

像這樣

RewriteCond %{QUERY_STRING} ^city=.+&state=.+$ 
RewriteRule ^(.*)$ http://example.com/$1? [R=301,L]