2016-02-27 73 views
1

我曾经有过我的网站就像一个域的根网址:www.mydomain.com
但现在我已经创建了一个子域“测试”:www.test.mydomain.com,我感动了整个项目文件存在。PHP如何获得一个子

到目前为止好,问题是,在我的PHP文库,其中我打电话数据库连接等,我用的是$_SERVER['DOCUMENT_ROOT']使我有URL没有子域,e.x.

$file = $_SERVER['DOCUMENT_ROOT'];//gives me www.mydomain.com 

但我需要与子域,以获得根,像:www.test.mydomain.com

我不想做一个把戏喜欢拆分网址,并添加子域名事情。

任何帮助,将不胜感激。

+0

可能是复制http://stackoverflow.com/questions/5292937/php-function-to-get-the-subdomain-of-a-url –

+0

'$ _SERVER ['DOCUMENT_ROOT']'没有得到任何**网址**。它获得当前站点文档根目录的**绝对路径**。要获得当前主机,你必须使用'$ _SERVER ['HTTP_HOST']' – fusion3k

回答

2

你可以尝试两种:

$_SERVER["SERVER_NAME"] 

$_SERVER['HTTP_HOST'] 

都返回域与子域。


$_SERVER["SERVER_NAME"]

下当前运行脚本所在服务器主机的名称。如果脚本在虚拟主机上运行,​​则这将是为该虚拟主机定义的值。

$_SERVER['HTTP_HOST']

主机的内容:从当前请求头,如果存在一个。

您可以在HTTP_HOST vs. SERVER_NAME$_SERVER["SERVER_NAME"]$_SERVER['HTTP_HOST']之间的区别阅读起来。在文档

下当前运行脚本所在的文档根目录指出,作为服务器的配置文件中定义

$_SERVER['DOCUMENT_ROOT']将无法​​正常工作。

有关$_SERVER的更多信息,请致电http://php.net/manual/en/reserved.variables.server.php

2

$_SERVER['DOCUMENT_ROOT']确实不是包含服务器名称!它包含 - 如名称所示 - DOCUMENT_ROOT。这是您的网络服务器所在的文件系统启动目录。

您应该试试$_SERVER['SERVER_NAME']。如果您的虚拟服务器设置正确,这应该工作。

0

最后,经过两个小时的搜索,我对系统管理员说话,他清除了他实际创建了一个别名域,它实际上的反应如下:www.test.mydomain.com

我想这就是为什么我得到www.mydomain.com没有子域当我打电话$_SERVER['DOCUMENT_ROOT']

谢谢,案件关闭。