PHP获取当前域名的记录

记录一次php获取当前域名的bug

问题:在做访问静态资源的时候,采用域名访问。又做了服务器负载防护。域名访问的时候,转发导致样式丢失

以example.com为例。在配置nginx的时候,配置了两个域名

server_name  www.example.com example.com;

代码里面使用了$_SERVER["SERVER_NAME"]来获取当前域名,访问example.com的时候,拿到的却是www.example.com的域名,导致样式全丢

查了一下,由于刚开始只做了一个example.com的防护转发,并没有www.example.com的存在,所以转发的时候,显示的又是www的域名,才会导致的样式丢失。

解决问题:

1、把www的访问也做了,保证server_name下面的所有域名都可以访问
2、把$_SERVER["SERVER_NAME"]换成$_SERVER['HTTP_HOST']

查了一下资料

$_SERVER["HTTP_HOST"] 会根据客户端的HTTP请求输出信息
$_SERVER["SERVER_NAME"] 会直接拿vhost配置文件的ServerName值,如果是多个,会默认拿第一个

以后开发尽量使用_SERVER["HTTP_HOST"] 来获取当前域名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值