nginx server_name 同一站点绑定多域名注意事项
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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;