动态获取网站根URL/基本URL


Get the website root URL / base URL dynamically

Dn不知道这是否可能,但让我解释一下我的问题。

我正在与多个开发人员合作一个项目。我们都有自己的发展环境。对于一些人来说,我们正在构建的网站位于其文档根目录的一个或多个子文件夹中,例如

/library/webserver/htdocs/project/website

其他人在网站上有不同的路径,比如

/htdocs/website

当涉及到寻找获取文档根目录的通用方法(包括php文件等)时,这是没有问题的。但我也想找到网站的根URL,在第一种情况下意味着:

http://localhost/project/website/

在第二种情况下为

http://localhost/website/

在生产中,同样的方法应该只返回

http://domain.tld.

有没有一种很好的方法可以做到这一点——不必手动定义路径?非常感谢。

我最终得到了一个这样的函数。它使用当前服务器的文档根,但随后去掉了网站根目录名之前的部分-这实际上是目录名的目录名,如果这个功能位于上面一步:

$dirName = dirname(dirname(__FILE__) . ".." . DIRECTORY_SEPARATOR);
$dirName = str_replace('''', "/", $dirName);    
$base = str_replace($_SERVER['DOCUMENT_ROOT'], "", $dirName);

如果文档根目录为/etc/webserver/documents/,并且文档根目录中的网站位于/projects/website1下,则如果此脚本位于/projects/website1/somreDir/someFile.php中,则会返回/projects/website1

希望这能帮助到别人。

我想您正在寻找$_SERVER['HTTP_ROOT']:

'HTTP_HOST'

Host的内容:当前请求的标头(如果有)。