1

我已經嘗試了幾個如何做到這一點的例子,但沒有任何工作,我擔心這是因爲查詢字符串是基本URL的一部分。301重定向根查詢參數

這裏是我想要做什麼:

重定向http://example.com/?from=TEST_1 - >http://example.com/foo

重定向http://example.com/?from=TEST_2 - >http://example.com/bar

這是我曾嘗試:

RewriteEngine On 
RewriteCond %{QUERY_STRING} from=TEST_1 
RewriteRule (.*) /foo [L,R=301] 

不幸的是,上述規則沒有影響。如果我改變規則的東西靜態的(見下文),它的偉大工程:

Redirect 301 /foo /bar 

是不是有什麼特別的,我需要爲了檢查查詢字符串值時,它的根域請求的一部分呢?

回答

2

試試這兩條規則作爲你的第一條規則,就在RewriteEngine的下方。

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^from=TEST_1$ 
RewriteRule ^/?$ /foo? [L,R=301] 

RewriteCond %{QUERY_STRING} ^from=TEST_2$ 
RewriteRule ^/?$ /bar? [L,R=301] 
  • ?在目標URI的端部用於丟棄從目標先前的查詢字符串。
  • ^/?$是僅匹配登錄頁面的正則表達式。
+1

繁榮,謝謝! –

+1

不客氣,很高興它解決了。 – anubhava