Всегда ли $ _SERVER ["SERVER_NAME"] и $ _SERVER ["DOCUMENT_ROOT"] ориентированы на один и тот же каталог? - PullRequest
0 голосов
/ 16 сентября 2011

Всегда ли $_SERVER["SERVER_NAME"]; и $_SERVER["DOCUMENT_ROOT"]; разрешаются в одном и том же каталоге?Есть сценарий, где они не будут?

РЕДАКТИРОВАТЬ:

Чтобы уточнить, я ЗНАЮ, что это не одно и то же - я пытаюсь установить только лиSERVER_NAME всегда будет отображаться в DOCUMENT_ROOT.т. е. если следовать каждому из них, он всегда будет находиться в одном и том же физическом месте в файловой системе серверов.

Ответы [ 3 ]

2 голосов
/ 16 сентября 2011
  • SERVER_NAME - доступный интернет-адрес - stackoverflow.com
  • DOCUMENT_ROOT - это абсолютный URL-адрес текущего каталога - на сервере / data / stackoverflow / ...

но да, он нацелен на один и тот же каталог (каждый раз)

1 голос
/ 16 сентября 2011

SERVER_NAME - это не путь, это фактическое имя домена. Возможно, вы захотите включить REQUEST_URI, который даст вам абсолютный путь с точки зрения веб-сервера (при условии, что вы просто используете файлы. REQUEST_URI дает вам путь, введенный пользователем. Веб-сервер или сам PHP могут доставлять контент, который даже не в файле)

Для этого это действительно зависит от того, что в $some_relative_path

DOCUMENT_ROOT - это абсолютный путь к серверу, на котором файлы вашего веб-сайта фактически находятся на сервере. DOCUMENT_ROOT может быть полезен для включения других файлов PHP, но никогда не должен подвергаться подключению клиента, так как это представляет угрозу безопасности.

Они никогда не должны быть одинаковыми в любом сценарии, если по какой-то причине кто-то не настроил / на сервере в качестве корневого документа. Это, вероятно, было бы очень плохой идеей, потому что тогда даже системные файлы были бы открыты для Интернета.

0 голосов
/ 16 сентября 2011

SERVER_NAME - это имя сервера, на котором был выполнен скрипт. Это также может быть имя виртуального хоста.

DOCUMENT_ROOT - путь к исполняемому вами скрипту. Если вы выполняете какое-либо переписывание URL, это может быть то же значение, что и SERVER_NAME

...