Я вернулся с простым вопросом (или связанным с ним вопросом).
Вопрос прост, но я еще не получил ответа. Я спросил многих людей с различным опытом работы на 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') ?>
следует использовать для гиперссылок