Back

ssl - http 的url 自动跳转到https 上。的配置方法(nginx)

发布时间: 2018-07-11 06:18:00

参考:https://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and-www-to-no-www

这样写就可以:

 server {
      listen 80;
      listen [::]:80;
      server_name  www.your_site.io your_site.io;
      return 301 https://$server_name$request_uri;
  }

# 下面就是 server 443 的配置。。。

如果希望所有的 @.a.com 都跳转到 www.a.com , 就这样:

# 所有的 @ 都跳转到 www 域名
server {
  listen 443;
  server_name xx.com xx.com.cn;
  return 301 https://www.xx.com$request_uri;
}

注意:

有的url不能直接跳转,例如 RESTful 资源,上面的跳转从 POST 会变成GET ,这是不行的。

所以要暂时: 

  server {
      listen 80; 
      listen [::]:80;
      server_name www.cadae.top cadae.top;
#      return 301 https://$server_name$request_uri;
      location / { 
        return 301 https://$server_name$request_uri;
      }   
      location /interface {
        proxy_pass          http://cadxx_servers;  # 这里就是你的后端服务器的proxy
        # proxy_set_header    X-Forwarded-Proto https;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    Host $http_host;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
      }   
  }

Back