【问题标题】:NGINX - Return 301 vs RewriteNGINX - 返回 301 与重写
【发布时间】: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。

标签: redirect nginx url-rewriting return


【解决方案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,而不是它的预期主机。
猜你喜欢
  • 2022-06-23
  • 2012-02-27
  • 1970-01-01
  • 2019-01-11
  • 2017-02-28
  • 2020-06-07
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多