Nginx - 正确地从http://重定向到https://没有www

时间:2016-01-21 13:46:43

标签: redirect ssl nginx https

关注我的配置文件:

server {
   listen [::]:443 ipv6only=off ssl;
   server_name www.example.com;
   // ssl stuff
   return 301 https://example.com$request_uri;
}

server {
   listen  [::]:80 ipv6only=off;
   return 301 https://example.com$request_uri;
}

server {
   listen [::]:443 ssl;  
   server_name example.com;
   // php and ssl stuff
}

我不明白为什么http://www.example.com重定向到https://www.example.com然后重定向到https://example.com。如何从http://www.example.com直接重定向到https://example.com

2 个答案:

答案 0 :(得分:1)

NGINX配置,用于在没有WWW的情况下从HTTP重定向到HTTPS:

server {
   listen 80 default_server;
   listen  [::]:80 default_server;
   server_name example.com www.example.com;
   return 301 https://example.com$request_uri;
}
server {
   listen 443 default_server;
   listen [::]:443 ssl http2 default_server;
   server_name example.com www.example.com;
   ##here-ssl-settings##
   return 301 https://example.com$request_uri;
}

答案 1 :(得分:0)

启用HSTS后,第一次重定向将由您的浏览器直接完成,无需任何网络互动。