【SERVER_NAME】PHP中的SERVER_NAME【原创】

【SERVER_NAME】PHP中的SERVER_NAME【原创】

今天碰到一个bug,做接口的时候,返回活动的链接,以前用的是:

           
1
$_SERVER['SERVER_NAME'] .'/index.php/xxxxx' 
结果发现前面的域名是错误的。

查文档发现$_SERVER['SERVER_NAME']输出的是apache或者是nginx里面配置文件定义的SERVER_NAME
比如apache的配置文件httpd.conf:
1
<virtualhost *>
2
ServerName baidu.cn
3
ServerAlias www.baidu.cn
4
</virtualhost>
那么上面的链接输出的是baidu.cn/index.php/xxxx

这和预想的域名是不一样的,域名是应该和请求的域名是一致的,后来改成用$_SERVER['HTTP_HOST']即可。

文档:
_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。
_SERVER["SERVER_NAME"] 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值。

所以,在实际程序中,应尽量使用_SERVER["HTTP_HOST"] ,比较保险和可靠。
posted @ 2017-07-14 22:11 Newman·Li 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值