2016-05-10 49 views
1

我已經完成了一個網站,現在我正在將舊網站更改爲新的並在.htaccess中創建301重定向。如何使多個獲取請求的301重定向

我有一個包含和身邊100個等於GET請求像一個網站地圖:

?foodmenu=name-of-the-dish 

在新的網站上有沒有類似的請求,而這一切的請求必須被重定向到一個固定的網站,讓我們說http://myrestaurant.com/menu

有一種方法可以讓我避免100+線幾乎相同的httacces線:

相反的:

Redirect 301 ?foodmenu=name-of-the-dish1 http://myrestaurant.com/menu 
Redirect 301 ?foodmenu=name-of-the-dish2 http://myrestaurant.com/menu 
Redirect 301 ?foodmenu=name-of-the-dish3 http://myrestaurant.com/menu 
Redirect 301 ?foodmenu=name-of-the-dish4 http://myrestaurant.com/menu 

使這一切在一行或功能,類似的東西:

Redirect 301 ?foodmenu* http://myrestaurant.com/menu 

注:這個請求是多語言的,所以我需要一個以上的規則/重定向:

Redirect 301 ?foodmenu=name-of-the-dish3 http://myrestaurant.com/menu 
Redirect 301 /ca?foodmenu=name-of-the-dish3 http://myrestaurant.com/ca/menu 
Redirect 301 /es?foodmenu=name-of-the-dish3 http://myrestaurant.com/es/menu 

回答

1

您無法與重定向指令中的查詢字符串匹配,請嘗試:

RewriteEngine on 



RewriteCond %{THE_REQUEST} \?foodmenu=([^\s]+) [NC] 
RewriteRule^%{REQUEST_URI}menu? [L,R] 
+0

我已更新規則根據您的筆記。 – starkeen

+0

對不起,我在編輯中寫了一些拼寫錯誤...現在正在更正...請檢查...一個問題:也許'%{REQUEST_URI}菜單?'必須包含語言代碼? –

+0

是的,如果/ ca在uri中,那麼%{REQUEST_URI}肯定會包含它。 – starkeen