首页
友情链接
统计分析
4K壁纸
搜索
1
#1031 – TABLE STORAGE ENGINE FOR ” DOESN’T HAVE THIS OPTION解决方法
997 阅读
2
让浏览器不显示 https 页面中 http 请求警报 http-equiv=”Content-Security-Policy” content=”upgrade-insecure-requests”
767 阅读
3
报错代码:ERROR 1227 (42000)-解决办法
574 阅读
4
微信个人商户号养号建议
489 阅读
5
解决移动端position:fixed随软键盘移动的问题
414 阅读
PHP
Mysql
乱七八糟
常用笔记
Linux
Reids
Search
标签搜索
php
千卡云支付
Linux
千卡云
千卡易支付
redis
Nginx
shell
Mysql
JS
支付宝
CentOS
Apache
支付
function
database
fastadmin
phpstorm
快捷键
微信支付
蓝科迪梦
累计撰写
59
篇文章
累计收到
1
条评论
首页
栏目
PHP
Mysql
乱七八糟
常用笔记
Linux
Reids
页面
友情链接
统计分析
4K壁纸
搜索到
1
篇与
的结果
2024-10-22
PHP中 HTTP_HOST 和 SERVER_NAME 的区别
最近在开发站群软件,用到了根据访问域名判断子站点的相关问题。PHP获取当前域名有两个变量 HTTP_HOST 和 SERVER_NAME,我想知道两者的区别以及哪个更加可靠。 首先我想说,百度上那些转来转去的文章都是扯淡! 有说相同的,有说不同的,都没说明原因,没经过验证就互相转来转去的,浪费观众时间。 下面说说本人经过亲自验证 + 查阅官方文档 + 官方BUG列表 + 官方邮件列表 + sitepoint + webmasterworld + google的总结: 相同点: 当满足以下三个条件时,两者会输出相同信息。 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”] 会输出端口号,例如:mimiz.cn:8080 $_SERVER[“SERVER_NAME”] 会直接输出ServerName值 因此在这种情况下,可以理解为:HTTP_HOST = SERVER_NAME : SERVER_PORT 3. 当配置文件httpd.conf中的ServerName与HTTP/1.0请求的域名不一致时: httpd.conf配置如下: <virtualhost *> ServerName mimiz.cn ServerAlias www.mimiz.cn </virtualhost> 客户端访问域名www.mimiz.cn $_SERVER[“HTTP_HOST”] 输出 www.mimiz.cn $_SERVER[“SERVER_NAME”] 输出 mimiz.cn 所以,在实际程序中,应尽量使用_SERVER[“HTTP_HOST”] ,比较保险和可靠。
2024年10月22日
32 阅读
0 评论
0 点赞