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/
那就废话不多说,直接上配置:
在根目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 server
server {
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的include,用来扩展拆分多域名的Nginx配置,后面会详细讲到怎么配置。
至此,配置完成。重启Nginx。
nginx -s reload
我们可以看到不管我们访问:
http://www.noteinfo.cn
https://www.noteinfo.cn
http://noteinfo.cn
https://noteinfo.cn
都会转跳到:
https://noteinfo.cn
如果你想不管方面上面哪一个网址,都转跳到带www的https的话,只需要修改https里面配置的server_name的顺序即可,把你想要的效果的域名放到最前面,然后重启Nginx即可。
server_name的第一个域名即是目标域名。