NGINX - 返回 301 与重写

Posted

技术标签:

【中文标题】NGINX - 返回 301 与重写【英文标题】:NGINX - Return 301 vs Rewrite 【发布时间】:2015-07-21 20:15:12 【问题描述】:

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

我有一个关于returnrewrite 301的问题。


重写 301:

rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent;

返回 301:

location ~ redirect-this/?$ 
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1;


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

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

我有超过 200 个要重定向的网址。那么,你推荐什么?

【问题讨论】:

这个问题有点令人困惑,因为您将rewrite ^(匹配任何内容)与匹配特定正则表达式的location ~ redirect-this/?$ 进行比较。你应该重新制定它。但无论如何,一个好问题......我很好奇哪个更快rewrite ^/testlocation ^/test with if。 【参考方案1】:

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

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

【讨论】:

那么你的建议其实是直接在server块中返回301?例如server server_name foo.com; return 301 http://$server_name$request_uri; ? @tutuDajuju 我建议你使用return 301 http://$host$request_uri; vs $server_name,因为这将导致重定向到第一个定义的server_name,而不是它的预期主机。

以上是关于NGINX - 返回 301 与重写的主要内容,如果未能解决你的问题,请参考以下文章

nginx配置url重写

nginx重写重定向文件夹

Nginx URL重写(rewrite)配置及信息详解

nginx rewrite重写与防盗链配置

nginx伪静态配置教程总结

Nginx URL重写(rewrite)配置及信息详解