查看: 40|回覆: 0

thinkPHP5.0 获取域名

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-10-1
發表於 2019-5-28 17:47:00 | 顯示全部樓層 |閲讀模式
$server_url = $_SERVER['SERVER_NAME']?"http://".$_SERVER['SERVER_NAME']:"http://".$_SERVER['HTTP_HOST'];

$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
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

在实际应用中,应尽量使用$_SERVER['HTTP_HOST'] ,比较保险和可靠

最近做的一个项目,当项目放到客户手里测试的时候,发现程序的跳转总是出错。
原因是:客户的公司是通过一台服务器连接到因特网,而我们程序所在的服务器,是通过域名映射过来的,也就是说中间有个“代理”的过程,
因此$_SERVER['HTTP_HOST']在这样的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。

 



来源:https://www.cnblogs.com/ymdphp/p/10939093.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部