PHP获取域名

PHP获取域名,php,domain-name,Php,Domain Name,我想获取脚本运行位置的域名。如何使用PHP实现这一点? 我看到$\u服务器['HTTP\u主机]]以及$\u服务器['SERVER\u NAME']包含此信息。 该变量是否始终有效?我是否应该使用一个变量而不是另一个变量 谢谢。以前在stackoverflow中也曾问过类似的问题 请看这里: 另请参见本文: 建议使用HTTP_主机,以及 仅当 未设置HTTP_主机。他说 服务器上的服务器名称可能不可靠 由于各种原因, 包括: 没有DNS支持 配置错误 负载平衡软件背后 资料来源: 要回答您

我想获取脚本运行位置的域名。如何使用PHP实现这一点? 我看到
$\u服务器['HTTP\u主机]]
以及
$\u服务器['SERVER\u NAME']
包含此信息。 该变量是否始终有效?我是否应该使用一个变量而不是另一个变量


谢谢。

以前在stackoverflow中也曾问过类似的问题

请看这里:

另请参见本文:

建议使用HTTP_主机,以及 仅当 未设置HTTP_主机。他说 服务器上的服务器名称可能不可靠 由于各种原因, 包括:

  • 没有DNS支持
  • 配置错误
  • 负载平衡软件背后
资料来源:


要回答您的问题,只要满足以下条件,这些方法就应该有效:

  • 您的HTTP服务器将这些值传递给PHP(我不知道有哪一个不传递)
  • 您不是通过命令行(CLI)访问脚本
但是,如果我没记错的话,这些值在一定程度上是伪造的,所以最好不要依赖它们

我个人的偏好是在apache2虚拟主机中:

# Virtual host
setEnv DOMAIN_NAME example.com
以及:

//PHP
echo getenv(域名);

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

这确实回答了我关于使用服务器名称而不是其他名称的部分问题,但在PHP中这是正确的方法吗?(是另一部分)谢谢。HTTP_主机对我来说似乎很合适。服务器名称工作正常,直到我们开始使用Docker,然后才给我们“localhost”。请注意,HTTP_主机也将为您提供子域。