nginx设置不带www的https跳转到带www的https地址

Posted lzhd24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx设置不带www的https跳转到带www的https地址相关的知识,希望对你有一定的参考价值。

一旦域名加上了证书,我们一般都希望所有的请求都重定向到一个url,这样在搜索引擎在爬取的时候就可以集中在一个地址,有利于SEO

譬如:

我们想要以下这三个域名都重定向到https://www.xiaoben707.com

http://www.xiaoben707.com

http://xiaoben707.com

https://xiaoben707.com

我们在nginx需要做以下两个设置:

第一:

server {
	listen 80;
	server_name xiaoben707.com www.xiaoben707.com;
	return 301 https://www.xiaoben707.com$request_uri;
}

这个意思很简单,把80端口的xiaoben707.com和www.xiaoben707.com永久重定向到https://www.xiaoben707.com

第二:

server {
listen 443;
server_name xiaoben707.com;
return 301 https://www.xiaoben707.com$request_uri;
    ssl_certificate /etc/letsencrypt/live/xiaoben707.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/xiaoben707.com/privkey.pem; # managed by Certbot
}

这里是将https://xiaoben707.com重定向到https://www.xiaoben707.com,值得注意的事,这里也需要xiaoben707.com的证书。我一般用certbot直接生成。







以上是关于nginx设置不带www的https跳转到带www的https地址的主要内容,如果未能解决你的问题,请参考以下文章

Apache环境利用.htaccess文件设置域名301跳转(不带www跳转到带www)

IIS301重定向:将不带www的域名跳转到带www上

nginx http301强制跳转https域名跳转到带www

带www与不带www之间的跳转

Nginx处理访问www域名跳转到不带www域名的配置方法

Nginx Https配置不带www跳转www