2016-02-27 2 views
1

я использовал, чтобы иметь свой сайт в домен, как: www.mydomain.com
Но теперь я создал «тест» поддомена: www.test.mydomain.com и я переехал целые файлы проекта там.PHP Как получить корневой URL поддомена

До сих пор так хорошо, проблема заключается в том, что на моем PHP библиотеки, где я называю дб связь и т.д., я использую $_SERVER['DOCUMENT_ROOT'], который дает мне URL без подобласти, e.x.

$file = $_SERVER['DOCUMENT_ROOT'];//gives me www.mydomain.com 

Но мне нужно, чтобы получить корень с субдомена, как: www.test.mydomain.com

Я не хочу, чтобы сделать трюк, как разделить URL и добавить субдомен вещь.

Любая помощь будет оценена по достоинству.

+0

Возможно дублировать http://stackoverflow.com/questions/5292937/php-function-to-get-the-subdomain-of-a-url –

+0

'$ _SERVER ['DOCUMENT_ROOT']' не получает никаких ** URL **. Он получает ** абсолютный путь ** текущего корня документа сайта. Чтобы получить текущий хост, вы должны использовать '$ _SERVER ['HTTP_HOST']' – fusion3k

ответ

2

Вы можете попробовать оба:

$_SERVER["SERVER_NAME"] 

$_SERVER['HTTP_HOST'] 

И возвратит домен с поддомена.


$_SERVER["SERVER_NAME"]

имя хоста сервера, при котором текущий скрипт. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для этого виртуального хоста.

$_SERVER['HTTP_HOST']

Содержание хоста: заголовок из текущего запроса, если есть один.

Вы можете прочитать о разнице между $_SERVER["SERVER_NAME"] и $_SERVER['HTTP_HOST'] в HTTP_HOST vs. SERVER_NAME.

$_SERVER['DOCUMENT_ROOT'] не будет работать, как указано в документации

Документ корневой каталог, при котором текущий скрипт, как определено в файле конфигурации сервера.

Дополнительная информация о $_SERVER по адресу http://php.net/manual/en/reserved.variables.server.php.

2

$_SERVER['DOCUMENT_ROOT']не содержит имя сервера! Он содержит - как говорится в названии - DOCUMENT_ROOT. Это каталог, в котором начинается файловая система, с которой работает ваш веб-сервер.

Вместо этого вы должны попробовать $_SERVER['SERVER_NAME']. Это должно работать, если ваша настройка виртуального сервера верна.

0

Наконец, после двухчасового поиска я поговорил с администратором системы, и он выяснил, что он фактически создал домен псевдонима , который он на самом деле реагирует как: www.test.mydomain.com.

Я думаю, что именно поэтому я получаю www.mydomain.comбез субдомена, когда я называю $_SERVER['DOCUMENT_ROOT'].

Спасибо, дело закрыто.

Смежные вопросы