我已经完成了一个网站,现在我将旧网站更改为新网站并在.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
答案 0 :(得分:1)
您无法在重定向指令中与查询字符串匹配,请尝试:
RewriteEngine on
RewriteCond %{THE_REQUEST} \?foodmenu=([^\s]+) [NC]
RewriteRule ^ %{REQUEST_URI}menu? [L,R]