1、使用rewrite指令
server {
listen 80;
server_name domain.com;
rewrite ^(.*) https://$server_name$1 permanent;
#或
#rewrite ^(.*) https://www.xxxxx.com$1 permanent;
#或
#rewrite ^(.*) https://$host$1 permanent;
}
2、使用return指令
server {
listen 80;
#常见的301跳转设置3种方法
server_name domain.com;
return 301 https://$server_name$request_uri;
#if ($scheme = http ) {
# return 301 https://$host$request_uri;
#}
#if ($server_port = 80 ) {
# return 301 https://$host$request_uri;
#}
}
3、使用error_page指令
server {
listen 80;
listen 443 ssl;
server_name domain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/xxxxx.crt;
ssl_certificate_key /etc/nginx/ssl/xxxxx.crt;
error_page 497 https://$server_name$request_uri;
}
使用error_page指令时,将http和https的监听配置写在同一个server块中,对应的其他配置也需要在该server配置块中完成。
需要注意的是,此时需要将error_page
指令语句写在最后,否则不能生效。