$ _SERVER ['DOCUMENT_ROOT']和$ _SERVER ['HTTP_HOST']之间的区别

Aak*_*hai 13 php

我回来的是一个简单的问题(或相关问题).

问题很简单,但我还没有收到答案.我问过很多人在PHP方面有不同的经验.但我得到的回应是:"我什么都不知道.我从来没有想过这个." 使用Google我无法找到任何关于此的文章.我希望我能在这里得到满意的答复.

所以问题是:

$_SERVER['DOCUMENT_ROOT']和之间有什么区别$_SERVER['HTTP_HOST']

一个优于另一个有什么优势吗?

我们应该在哪里使用HTTP_HOST以及在哪里使用DOCUMENT_ROOT?

Joh*_*ter 31

DOCUMENT_ROOT

此站点的根目录由"常规"部分中的"DocumentRoot"指令或例如

DOCUMENT_ROOT=/var/www/example 
Run Code Online (Sandbox Code Playgroud)

HTTP_HOST

主机的基本URL,例如

HTTP_HOST=www.example.com 
Run Code Online (Sandbox Code Playgroud)

文档根目录是您服务器上网站的本地路径; http主机是服务器的主机名.他们是相当不同的; 也许你可以澄清你的问题?

编辑:你说:

案例1:标题('位置:'.$ _SERVER ['DOCUMENT_ROOT'].'/ abc.php')

案例2:标题('位置:'.$ _SERVER ['HTTP_HOST'].'/ abc.php')

我怀疑第一个只有在你为浏览页面服务的同一台机器上运行浏览器才能工作.

想象一下,如果其他人使用他们的Windows机器访问您的网站.并且您的网络服务器在HTTP标头中告诉他们,"嘿,实际上,重定向此位置:/var/www/example/abc.php." 您期望用户的机器做什么?

现在,如果你在谈论类似的东西

<?php include($_SERVER['DOCUMENT_ROOT'] . '/include/abc.php') ?>
Run Code Online (Sandbox Code Playgroud)

VS

<?php include($_SERVER['HTTP_HOST'] . '/include/abc.php') ?>
Run Code Online (Sandbox Code Playgroud)

这可能有意义.我怀疑在这种情况下前者可能是首选,虽然我不是PHP大师.