Redirect NGINX-返回301 vs重写
我在我的专用服务器中使用 我有一个关于返回和重写301的问题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:
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
。