vlambda博客
学习文章列表

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

日常习惯性质把网址说成www的形式。不管访问什么都直接转跳到指定的域名。


可以看下百度的效果。

不管我们访问下面哪一个网址:

http://www.baidu.com

https://www.baidu.com

http://baidu.com

https://baidu.com


最后都会转跳到:

https://www.baidu.com/



其实是为了方便用户使用,所有的域名都转跳到https一级域名。今天我们就来配置下。


先配置一个最大的静态内容官网:

路径在:html/noteinfo/


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


那就废话不多说,直接上配置:


在根目include扩展一个目录。

 include noteinfo.cn/*.conf;


noteinfo.cn文件夹下面新建一个www.conf文件,配置如下:

 server { listen 80;    server_name  noteinfo.cn www.noteinfo.cn;    rewrite ^(.*)$  https://$host$1 permanent;}
# HTTPS serverserver { listen 443 ssl; server_name noteinfo.cn www.noteinfo.cn;
ssl_certificate ../docs/cert/noteinfo.cn.pem; ssl_certificate_key ../docs/cert/noteinfo.cn.key;
ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
location / { root html/noteinfo/; index index.html index.htm; }}


www.conf:前面的名字不一定是www,随便写,为了方便记忆和后续维护,最好有一定规则。


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


这里用了Nginx的include,用来扩展拆分多域名的Nginx配置,后面会详细讲到怎么配置。


至此,配置完成。重启Nginx。

nginx -s reload


我们可以看到不管我们访问:

http://www.noteinfo.cn

https://www.noteinfo.cn

http://noteinfo.cn

https://noteinfo.cn


都会转跳到:

https://noteinfo.cn


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


如果你想不管方面上面哪一个网址,都转跳到带www的https的话,只需要修改https里面配置的server_name的顺序即可,把你想要的效果的域名放到最前面,然后重启Nginx即可。


server_name的第一个域名即是目标域名。