Разница между $ _SERVER и $ _SERVER

Я вернулся с простым вопросом (или связанным с ним вопросом).

Вопрос прост, но я еще не получил ответа. Я спросил многих людей с различным опытом работы на PHP. Но я получаю ответ: «Я понятия не имею, я никогда об этом не думал». Используя Google, я не смог найти статью об этом. Надеюсь, что здесь я получу удовлетворительный ответ.

Итак, вопрос:

В чем разница между $_SERVER['DOCUMENT_ROOT'] и $_SERVER['HTTP_HOST'] ?

Есть ли преимущества одного над другим?

Где мы должны использовать HTTP_HOST и где использовать DOCUMENT_ROOT?

DOCUMENT_ROOT

Корневой каталог этого сайта, определенный директивой DocumentRoot в разделе «Общие» или разделе, например

 DOCUMENT_ROOT=/var/www/example 

HTTP_HOST

Основной URL-адрес хоста, например

 HTTP_HOST=www.example.com 

Корень документа – это локальный путь к вашему сайту, на вашем сервере; 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') ?> 

против

 <?php include($_SERVER['HTTP_HOST'] . '/include/abc.php') ?> 

Это может иметь смысл. Я подозреваю, что в этом случае первое, вероятно, предпочтительнее, хотя я не PHP Guru.

Эх, в чем вопрос? DOCUMENT_ROOT содержит путь к текущей сети, в моем случае /home/www . HTTP_HOST содержит HTTP_HOST , поскольку он работает в локальном домене. Разница очевидна, не так ли?

Я не могу понять, где вы можете обменять этих двух, так почему вы должны учитывать преимущества?

HTTP_HOST предоставит вам URL-адрес хоста, например domain.com

DOCUMENT_ROOT предоставит вам абсолютный путь для корневого каталога документа на веб-сайте в файловой системе сервера, например /var/www/domain/

Кстати, вы пробовали посмотреть руководство PHP, в частности $_SERVER ? Там все объяснено.

 header('Location: '. $_SERVER['DOCUMENT_ROOT'] . '/abc.php') 

должен использоваться для включения файлов в другой файл.

 <?php include($_SERVER['HTTP_HOST'] . '/include/abc.php') ?> 

следует использовать для гиперссылок