【问题标题】:NGINX redirect to www in multi-domain environment [closed]NGINX 在多域环境中重定向到 www [关闭]
【发布时间】:2013-06-11 08:31:03
【问题描述】:

如果没有预先确定域名,如何在 NGINX 中将非 www 重定向到 www?我找到的所有示例都显示 domain.com 或 example.com。我需要重定向任何域。有什么指点吗?

【问题讨论】:

标签: redirect nginx no-www


【解决方案1】:

您可以指定默认服务器来捕获配置的server_name 指令中指定的域。

listen 80 default_server;

将使该服务器捕获不匹配的域名(假设所有接口上的端口均为 80)。

这是此行为的clear explanation

(不是在nginx 0.8.21之前必须指定default(不是default_server)。

【讨论】:

  • 感谢您的回复!我正在监听我的 IP,因为所有域都是它的别名。 CMS 完成所有切换。我将尝试:stackoverflow.com/a/1639549/447516 并发布我的结果,从逻辑上讲,这似乎是我一直在寻找的。我们会看看它是否有效。
  • 第二个答案看起来像你想要的“stackoverflow.com/a/1691116/2149092”,但不要使用重写方法,使用第三个答案“stackoverflow.com/a/15517045/2149092”中指定的301返回,因为它的处理较少对于 nginx,因为它不涉及正则表达式。
【解决方案2】:

这是让我前进的原因:

https://stackoverflow.com/a/3766957/447516

if ($host ~* ^[^.]+\.[^.]+$) {
    rewrite ^(.*)$ http://www.$host$1 permanent;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2014-03-23
    • 2017-06-20
    • 1970-01-01
    • 2017-04-30
    相关资源
    最近更新 更多