Nginx 自动跳转到HTTPS Nginx设置http自动跳转https SSL配置

Nginx 自动跳转到HTTPS Nginx设置http自动跳转https SSL配置

方法一

rewrite ^(.*)$ https://$host$1 permanent;

方法二

适用于 80端口和443 配置在同一个 server{}内

if ($server_port = 80) {
      rewrite ^(.*)$ https://$host$1 permanent;
}

其他情况, 站点绑定很多域名,只让某个域名跳转:

set $redirect_https 1;
if ($server_port = 80) {
   set $redirect_https "${redirect_https}2";
}
if ($http_host = 'www.yourdomain.com') {
   set $redirect_https "${redirect_https}3";
}
if ($http_host = 'yourdomain.com') {
   set $redirect_https "${redirect_https}3";
}

if ($redirect_https = "123") {
rewrite ^(.*)$ https://$host$1 permanent;
}

示例

server {
        listen       80;
        server_name  www.getssl.cc;
        rewrite ^ https://$http_host$request_uri? permanent;
}

server {
        listen 443;
        ssl on;
        ssl_certificate /etc/ssl/cacert.pem;
        ssl_certificate_key /etc/ssl/privkey.pem;
        server_name www.yourdomain.com;  

        
        server_tokens off;

        location / {
          
                fastcgi_param   HTTPS               on;
                fastcgi_param   HTTP_SCHEME         https;

        }
        
}