thinkphp的$_SERVER['SERVER_NAME']或者input('server.SERVER_NAME')获取到的域名不对
情况:我的项目后台做了批量查询违禁词的功能,是需要循环所有页面的,代码中有一句是动态获取站点域名
$url_pre = input('server.REQUEST_SCHEME') . '://' . input('server.SERVER_NAME');
这句话在本地是正常的,但是项目部署到服务器上线之后,就出问题了。
最开始在服务器上部署项目的时候,我是解析了一个测试域名,在上线之后,换成了正式域名,并且把测试域名的解析和绑定都删了。但在线上,这句代码获取到的还是原来的测试域名。
原因:在使用nginx中,当nginx里的server_name配置了多个域名的时候,发现$_SERVER["SERVER_NAME"]获取的域名是第一个而不是第二个或者第三个。
解决方案:把配置文件里的server_name中出现的测试域名也删掉。