Nginx 自动跳转到HTTPS

方法一:

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.22.cn') {

set $redirect_https "${redirect_https}3";

}

if ($http_host = '22.cn') {

set $redirect_https "${redirect_https}3";

}

if ($redirect_https = "123") {

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

}


配置示例:

server {

listen       80;

server_name  www.22.cn;

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.22.cn;  

server_tokens off;

location / {

fastcgi_param   HTTPS               on;

fastcgi_param   HTTP_SCHEME         https;

}

}