可能重复:
HTTP_HOST与SERVER_NAME
你好,
我想获取运行脚本的域名.如何用PHP完成?我看到它$_SERVER['HTTP_HOST']以及$_SERVER['SERVER_NAME']包含这些信息.该变量是否始终有效,我应该使用另一个吗?
谢谢.
Muk*_*ain 83
之前已经在stackoverflow中询问过类似的问题.
看到这里:PHP $ _SERVER ['HTTP_HOST']与$ _SERVER ['SERVER_NAME'],我是否正确理解了手册页?
另见本文:http://shiflett.org/blog/2006/mar/server-name-versus-http-host
建议使用HTTP_HOST,仅在未设置HTTP_HOST时返回SERVER_NAME.他说,由于各种原因,SERVER_NAME在服务器上可能不可靠,包括:
- 没有DNS支持
- 配置错误
- 负载均衡软件背后
要回答你的问题,这些问题应该有效:
但是,如果我没记错的话,这些值可以在一定程度上伪造,所以最好不要依赖它们.
我个人的偏好是在apache2虚拟主机中将域名设置为环境变量:
# Virtual host
setEnv DOMAIN_NAME example.com
Run Code Online (Sandbox Code Playgroud)
并在PHP中阅读:
// PHP
echo getenv(DOMAIN_NAME);
Run Code Online (Sandbox Code Playgroud)
但是,这并不适用于所有情况.
| 归档时间: |
|
| 查看次数: |
290387 次 |
| 最近记录: |