PHP получить доменное имя

Возможный дубликат:
HTTP_HOST и SERVER_NAME

Здравствуйте,

Я хочу получить доменное имя для сценария. Как это можно сделать с PHP? Я вижу, что эта информация содержит $_SERVER['HTTP_HOST'] а также $_SERVER['SERVER_NAME'] . Будет ли эта переменная работать всегда, и я должен использовать ее над другой?

Спасибо.

    Аналогичный вопрос задан в stackoverflow раньше.

    См. Здесь: PHP $ _SERVER ['HTTP_HOST'] против $ _SERVER ['SERVER_NAME'], правильно ли я понимаю страницы руководства?

    Также см. Эту статью: http://shiflett.org/blog/2006/mar/server-name-versus-http-host

    Рекомендуется использовать HTTP_HOST и вернуться к серверу SERVER_NAME, только если HTTP_HOST не был установлен. Он сказал, что SERVER_NAME может быть ненадежным на сервере по разным причинам, в том числе:

    • поддержка DNS
    • неправильно
    • программное обеспечение для балансировки нагрузки

    Источник : http://discussion.dreamhost.com/thread-4388.html

    Чтобы ответить на ваш вопрос, они должны работать до тех пор, пока:

    • Ваш HTTP-сервер передает эти значения вместе с PHP (я не знаю, что это не так)
    • Вы не получаете доступ к скрипту через командную строку (CLI)

    Но, если я правильно помню, эти ценности могут быть подделаны до такой степени, поэтому лучше не полагаться на них.

    Мое личное предпочтение заключается в том, чтобы установить имя домена как переменную среды в виртуальном хосте apache2:

     # Virtual host setEnv DOMAIN_NAME example.com 

    И прочитайте его в PHP :

     // PHP echo getenv(DOMAIN_NAME); 

    Это, однако, не применимо ни при каких обстоятельствах.