Redirect NGINX-返回301 vs重写

Redirect NGINX-返回301 vs重写,redirect,nginx,url-rewriting,return,Redirect,Nginx,Url Rewriting,Return,我在我的专用服务器中使用 我有一个关于返回和重写301的问题 重写301: rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent; location ~ redirect-this/?$ { return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1; } 返回301: rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_

我在我的专用服务器中使用

我有一个关于返回和重写301的问题


重写301:

rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent;
location ~ redirect-this/?$ {
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1;
}
返回301:

rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent;
location ~ redirect-this/?$ {
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1;
}

所有重定向都正常工作。但是

进行301重定向最有效的方法是什么?

我有200多个url要重定向。那么,您推荐什么呢?

如中所述,您应该使用服务器块和
返回
语句,因为它们比通过
位置
块计算正则表达式快得多


因为你强迫重写规则发送301,所以在搜索引擎优化方面没有区别,顺便说一句

那么您的建议是,实际上,直接在服务器块中返回301?e、 g
server{server\u name foo.com;return 301 http://$server\u name$request\u uri;}
?@tututudaju我建议您使用
return 301 http://$host$request\u uri
vs
$server\u name
,因为这将导致重定向到第一个定义的服务器名称,而不是它所要使用的主机。这个问题有点混乱,因为您将
重写^
(匹配任何内容)与匹配特定正则表达式的
位置~重定向此/?$
。你应该重新制定它。但无论如何,一个好问题。。。我很好奇哪一个使用if更快
rewrite^/test
location^/test