nginx server_name 同一站点绑定多域名注意事项

来源:赵克立博客 分类: 服务器 标签:nginx发布时间:2022-07-03 11:21:47最后更新:2022-07-03 11:21:47浏览:489
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2022-07-03 11:21:47
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

如下做一个重定向操作

server {
        listen       80;
        server_name  zhaokeli.com a.zhaokeli.com b.zhaokeli.com;
        return      301  https://$server_name$request_uri;
}

本意是想让上面列出的域名跳转到https来访问,但实际下访问后面a.zhaokei.com b.zhaokeli.com时会跳转到https://zhaokeli.com  第一个域名上去。

因为server_name 这个变量首个域名是这个站点的主域名,后面的只能称为别名,server_name只会保存首个域名,想实现各个域名跳转到对应的域名需要使用host变量,如下 

server {
        listen       80;
        server_name  zhaokeli.com a.zhaokeli.com b.zhaokeli.com;
        return      301  https://$host$request_uri;
}

同样的问题也可能会影响到php中 $_SERVER['SERVER_NAME']  的获取,需要在nginx的配置文件中fastcgi_params修正如下配置,同样使用host变量

#fastcgi_param  SERVER_NAME        $server_name;
fastcgi_param  SERVER_NAME        $host;



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python