PHP获取域名
可能重复:
HTTP_HOST与SERVER_NAME
你好,
我想获取脚本运行的域名。 这怎么可以用PHP来完成? 我发现$_SERVER['HTTP_HOST']
以及$_SERVER['SERVER_NAME']
包含这些信息。 这个variables是否总能正常工作,我应该使用一个吗?
谢谢。
类似的问题已经在stackoverflow之前被问到。
看到这里: PHP $ _SERVER ['HTTP_HOST']与$ _SERVER ['SERVER_NAME'],我正确理解手册页?
另请参阅此文章: http : //shiflett.org/blog/2006/mar/server-name-versus-http-host
build议使用HTTP_HOST,并且只有在没有设置HTTP_HOST的情况下才返回到SERVER_NAME。 他说,由于各种原因,SERVER_NAME可能在服务器上不可靠,其中包括:
- 没有DNS支持
- configuration错误
- 后面负载均衡软件
来源 : http : //discussion.dreamhost.com/thread-4388.html
要回答你的问题,只要:
- 你的HTTP服务器将这些值传递给PHP(我不知道有没有)
- 您不通过命令行(CLI)访问脚本
但是,如果我没有记错的话,这些价值观是可以伪造的,所以最好不要依赖它们。
我个人偏好是在apache2虚拟主机中将域名设置为一个环境variables :
# Virtual host setEnv DOMAIN_NAME example.com
并阅读它在PHP中 :
// PHP echo getenv(DOMAIN_NAME);
但是,这并不适用于所有情况。