PHP 获取域名

2022-08-30 08:08:11

我想获取脚本运行位置的域名。如何使用PHP完成此操作?我看到了这一点,并包含这些信息。该变量是否始终有效,我应该使用一个变量而不是另一个变量吗?$_SERVER['HTTP_HOST']$_SERVER['SERVER_NAME']

谢谢。


答案 1

类似的问题之前在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 支持
  • 配置错误
  • 负载均衡软件背后

资料来源http://discussion.dreamhost.com/thread-4388.html


答案 2

要回答您的问题,这些应该适用于:

  • 您的HTTP服务器将这些值传递给PHP(我不知道任何不这样做的值)
  • 没有通过命令行 (CLI) 访问脚本

但是,如果我没记错的话,这些值可以在一定程度上被伪造,所以最好不要依赖它们。

我个人的偏好是将域名设置为apache2虚拟主机中的环境变量:

# Virtual host
setEnv DOMAIN_NAME example.com

并用PHP阅读它

// PHP
echo getenv(DOMAIN_NAME);

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


推荐