NGINX - 返回301 vs Rewrite

Fer*_*ina 46 redirect return nginx url-rewriting

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

我有一个问题,返回重写301.


重写301:

rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent;
Run Code Online (Sandbox Code Playgroud)

返回301:

location ~ redirect-this/?$ {
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1;
}
Run Code Online (Sandbox Code Playgroud)

所有都正确地重定向到请求的URL.但..

哪个更有效的方法,使301重定向?

我有200多个网址要重定向.那么,你推荐什么?

VF_*_*VF_ 33

正如nginx陷阱中所述,您应该使用服务器块和return语句,因为它们比通过location块评估RegEx更快.

由于你强迫重写规则发送301,所以在SEO方面没有区别,顺便说一句..

  • @tutuDajuju我建议你使用`return 301 http:// $ host $ request_uri;`vs` $ server_name`,因为这会导致重定向到与预期主机相对应的第一个定义的server_name. (9认同)
  • 那么你的建议实际上是直接在服务器块中返回301?例如`server {server_name foo.com; return 301 http:// $ server_name $ request_uri; }? (3认同)