[英]PHP How to get the root url of a subdomain
我曾经将我的网站设置为一个域名,例如: www.mydomain.com
但是现在我创建了一个子域“ test”: www.test.mydomain.com
,并将整个项目文件移到了那里。
到目前为止,很好的问题是,在我调用数据库连接等的php库中,我使用了$_SERVER['DOCUMENT_ROOT']
,该URL提供了没有子域的URL ,例如
$file = $_SERVER['DOCUMENT_ROOT'];//gives me www.mydomain.com
但是我需要使用子域来获得根目录,例如 :www.test.mydomain.com
我不想像把URL拆分并添加子域一样。
任何帮助,将不胜感激。
您可以同时尝试:
$_SERVER["SERVER_NAME"]
$_SERVER['HTTP_HOST']
两者都将返回带有子域的域。
$_SERVER["SERVER_NAME"]
正在执行当前脚本的服务器主机的名称。 如果脚本在虚拟主机上运行,则将是为该虚拟主机定义的值。
$_SERVER['HTTP_HOST']
主机的内容:当前请求中的标头(如果有)。
您可以在HTTP_HOST与SERVER_NAME上阅读$_SERVER["SERVER_NAME"]
和$_SERVER['HTTP_HOST']
之间的区别。
$_SERVER['DOCUMENT_ROOT']
将无法按照文档中所述操作
服务器配置文件中定义的当前脚本正在其下执行的文档根目录。
有关$_SERVER
更多信息,请$_SERVER
http://php.net/manual/zh/reserved.variables.server.php 。
$_SERVER['DOCUMENT_ROOT']
不包含服务器名称! 顾名思义,它包含DOCUMENT_ROOT
。 这是Web服务器服务的文件系统启动的目录。
您应该尝试使用$_SERVER['SERVER_NAME']
。 如果您的虚拟服务器设置正确,这应该可以工作。
最终,经过两个小时的搜索,我与系统管理员交谈,他清除了自己实际上创建的别名域的情况 ,该域的实际反应为: www.test.mydomain.com
。
我猜这就是为什么当我调用$_SERVER['DOCUMENT_ROOT']
时得到不www.mydomain.com
域的www.mydomain.com
原因。
谢谢,结案了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.