PHP获取域名

Fra*_*isc 79 php domain-name

可能重复:
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支持
  • 配置错误
  • 负载均衡软件背后

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


xzy*_*fer 7

要回答你的问题,这些问题应该有效:

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

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

我个人的偏好是在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)

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