【问题标题】:Same redirect works for one www to non-www domain, but create redirect loop for the second using nginx相同的重定向适用于一个 www 到非 www 域,但使用 nginx 为第二个域创建重定向循环
【发布时间】:2016-02-17 22:08:50
【问题描述】:

我有 2 个使用 Nginx 重定向到不同端口的 Meteor 应用程序。对于每个应用程序,我都有相同的配置文件,但端口和域不同。第一个从 www 重定向到非 www 没有任何问题,但第二个显示消息:

这个网页有一个重定向循环

在 my-domain1.conf 中:

server {
    server_name www.saveting.com;
    return 301 $scheme://saveting.com$request_uri;
}
server {
  listen                80;

  server_name           saveting.com www.saveting.com;

  access_log            /var/log/nginx/app.dev.access.log;
  error_log             /var/log/nginx/app.dev.error.log;

  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header X-Forwarded-For $remote_addr;
  }
}

在 my-domain2.conf 中:

server {
    server_name www.downloadinstagramvideo.com;
    return 301 $scheme://downloadinstagramvideo.com$request_uri;
}
server {
  listen            80;

  server_name       downloadinstragramvideo.com www.downloadinstagramvideo.com;

  access_log          /var/log/nginx/app.dev.access.log;
  error_log           /var/log/nginx/app.dev.error.log;

  location / {
    proxy_pass http://localhost:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header X-Forwarded-For $remote_addr;
  }
}

我尝试使用以下代码为所有使用this tutorial 的域进行重定向:

server {
        server_name "~^(?!www\.).*" ;
        return 301 $scheme://www.$host$request_uri;
}

但这对任何人都不起作用。什么会导致第二个中的重定向循环?

【问题讨论】:

    标签: .htaccess redirect nginx


    【解决方案1】:

    第二/第四块中的server_name包含第一/第三块的名称,这是错误的。每个服务器块都应该有不重叠的名称。如:

    server {
      server_name www.saveting.com;
      ...
    }
    server {
      server_name saveting.com;
      ...
    }
    server {
      server_name www.downloadinstagramvideo.com;
      ...
    }
    server {
      server_name downloadinstragramvideo.com;
      ...
    }
    

    【讨论】:

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