我想获取脚本运行位置的域名。如何用 PHP 做到这一点?我看到$_SERVER['HTTP_HOST']
并$_SERVER['SERVER_NAME']
包含这些信息。该变量会一直有效吗?我应该使用其中一个吗?
谢谢你。
我想获取脚本运行位置的域名。如何用 PHP 做到这一点?我看到$_SERVER['HTTP_HOST']
并$_SERVER['SERVER_NAME']
包含这些信息。该变量会一直有效吗?我应该使用其中一个吗?
谢谢你。
之前在stackoverflow中已经提出了类似的问题。
请参见此处:PHP $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'],我是否正确理解了手册页?
另见这篇文章:http ://shiflett.org/blog/2006/mar/server-name-versus-http-host
建议使用 HTTP_HOST,并且仅在未设置 HTTP_HOST 时才使用 SERVER_NAME。他说 SERVER_NAME 在服务器上可能不可靠,原因有很多,包括:
- 不支持 DNS
- 配置错误
- 负载均衡软件背后
要回答您的问题,这些应该只要:
但是,如果我没记错的话,这些值在一定程度上是可以伪造的,所以最好不要依赖它们。
我个人的偏好是在apache2虚拟主机中将域名设置为环境变量:
# Virtual host
setEnv DOMAIN_NAME example.com
// PHP
echo getenv(DOMAIN_NAME);
然而,这并不适用于所有情况。