在PHP中获取webroot

eoigrqb6  于 2023-03-21  发布在  PHP
关注(0)|答案(4)|浏览(163)

我正在使用Apache服务器的PHP。我如何在PHP中检索我的Web根目录,如http://localhost/testthesis/

syqv5f0l

syqv5f0l1#

本地服务器上的绝对路径(从客户端的Angular )

对于站点上的本地链接,只需使用根目录,该目录始终为/

$folder = '/';

或者甚至没有任何变量,只需从/开始任何地址。
对于当前请求的地址使用

$_SERVER['REQUEST_URI'];

完整URL(客户端Angular )

对于您的Web服务器的根

$protocol = ($_SERVER['HTTPS'] ?? '') === 'on' ? 'http://' : 'https://';
$folder = $protocol . $_SERVER['HTTP_HOST'] . '/';

当前请求的地址

$protocol = ($_SERVER['HTTPS'] ?? '') === 'on' ? 'http://' : 'https://';
$folder = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
8yoxcaq7

8yoxcaq72#

下面是一种方法:

$web_root = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";

OUTPUT -->http://website.com/parent_folder/
xhv8bpkk

xhv8bpkk3#

Web根目录alwaysjust /。你永远不需要主机名或协议部分,根目录可以只是服务器的根目录,而不是某个文件夹或文件。
如果你需要一些路径,比如/testthesis/-有很多方法,但它与webroot没有任何共同之处。
如果你需要一个webroot的文件系统目录-它在$_SERVER['DOCUMENT_ROOT']变量中。

lhcgjxsq

lhcgjxsq4#

你要找的不是一个webroot,而是一个URL。
你可以像这样得到你的当前URL:

$protocol = strpos($_SERVER['SERVER_SIGNATURE'], '443') !== false ? 'https://' : 'http://';
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

相关问题