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); 

但是,这并不适用于所有情况。