2019独角兽企业重金招聘Python工程师标准>>>

开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更加可靠?

相同点:

当满足以下三个条件时,两者会输出相同信息。

1、服务器为80端口

2、apache的conf中ServerName设置正确

3、HTTP/1.1协议规范

不同点:

1、通常情况:

$_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。

$_SERVER["SERVER_NAME"] 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值。

2、当服务器为非80端口时:

$_SERVER["HTTP_HOST"] 会输出端口号,例如:snsgou.com:8080

$_SERVER["SERVER_NAME"] 会直接输出ServerName值

因此在这种情况下,可以理解为:$_SERVER['HTTP_HOST'] = $_SERVER['SERVER_NAME'] : $_SERVER['SERVER_PORT']

3、当配置文件httpd.conf中的ServerName与HTTP/1.0请求的域名不一致时:

httpd.conf配置如下:

<virtualhost *>
ServerName snsgou.com    ServerAlias blog.snsgou.com
</virtualhost>

客户端访问域名 blog.snsgou.com

$_SERVER["HTTP_HOST"] 输出 blog.snsgou.com
$_SERVER["SERVER_NAME"] 输出 snsgou.com

所以,在实际程序中,应尽量使用_SERVER["HTTP_HOST"] ,比较保险和可靠。

转载于:https://my.oschina.net/u/2380669/blog/498362

最新文章

  1. 重磅!谷歌面试官亲自分享:Google面试技巧
  2. android源码编译 简书,android学习笔记之源码编译
  3. MTK深圳公司嵌入式软件工程师笔试题(含部分答案)
  4. 在ASP.NET页面中实现数据柱状图
  5. 构建之法第一章读后感
  6. 常用Java面试题 List集合
  7. 斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...
  8. 王道408数据结构——第六章 图
  9. 8万级自动挡智能SUV,舒适好开是亮点,众泰T600Coupe要逆天?
  10. mysql管理器源码_一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
  11. 360浏览器设置多标签操作步骤
  12. dbgview OutputDebugString输出函数
  13. rx580网络适配器下载_通过Rx和数据绑定简化RecyclerView适配器
  14. 浏览器加载渲染网页过程解析-总结
  15. php 子文件夹如何定义,php-子文件夹的重写规则
  16. 《计算机组成与CPU设计实验》实验6 彩灯控制器实验
  17. java模拟简单的qq聊天_初学java之模拟QQ聊天软件(简单实现)
  18. Google APAC 2016 University Graduates Test Practice Round APAC test
  19. javafx控件Button
  20. 使用Docker构建服务(6)

热门文章

  1. 绝不因寂寞而爱上别人
  2. 微软Skype推出Slack整合预览版
  3. spring整合shiro
  4. linuxz指令大全
  5. Mysql查看编码方式专题
  6. linux 文件类型 时间戳 ls bash特性四 文件查看命令 cp move echo
  7. shell 脚本初习
  8. struts2文件上传类型的过滤
  9. umail邮件服务器如何保证数据安全性?
  10. 导入工程出错原因及解决