如何对多个get请求进行301重定向

时间:2016-05-10 10:41:09

标签: .htaccess redirect get request

我已经完成了一个网站,现在我将旧网站更改为新网站并在.htaccess中创建301重定向。

我有一个包含aroud 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 个答案:

答案 0 :(得分:1)

您无法在重定向指令中与查询字符串匹配,请尝试:

RewriteEngine on



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