Определение базового URL сайта при смене хостинга

doran7

Новичок
В конфигах разных CMS и форумов прописывается базовый URL сайта по типу:
Код:
$base_url = ''http://some_site/smf/'; // например, для известного форума SMF
При этом при смене хостинга этот $base_url приходится прописывать заново вручную.

Вопрос к корифеям. Возможно ли определять автоматически, программно, этот самый базовый URL сайта, чтобы все работало при смене хостинга?

Пока ничего кроме
Код:
$base_url = 'http://'.$_SERVER['SERVER_NAME'].'/';
не пришло в голову. Поиск делал, но ответа на вопрос не нашел.

UPD. Уточнение. Для внутренних путей и ссылок применяется относительная адресация, а для внешних - абсолютная адресация.
 
Последнее редактирование:

HraKK

Мудак
Команда форума
В гугле, ровно за 1 секунду, в первой же ссылке.

Не надо нас настолько не любить, пожалуйста, мы тебе ничего плохого не сделали. Изволь, потратить свои 5 секунд, а не наши.
 

doran7

Новичок
HraKK, честно искал, потратил гораздо больше 5 секунд. В поиске не нашел, но получил ответ с одного форума что работает
Код:
$base_url = 'http://'.$_SERVER['HTTP_HOST']
Ответил человек, который это не раз проверял на практике.

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

doran7

Новичок
Andkorol, хоршая инфа, благодарю.

Еще такое пишут. Вообще в массиве $_SERVER добрая часть значений описывается, как "зависит от настроек сервера, работа не гарантирована", потому как $_SERVER - это то, что сказал сервер, а сказал он то, как настроил его админ.
Это как бы одна из причин того, почему $base_url надежнее прописывать вручную, при смене хостинга, а не определять программно.
 

AmdY

Пью пиво
Команда форума
не надо вообще, этот параметр имеет значение только при работе из cli, в остальных кейсах не нужно задавать имя сайта, можно просто писать урлы /url
 

AnrDaemon

Продвинутый новичок
Вот только не надо слушать автора и использовать в своих скриптах HTTP_HOST для каких-либо целей кроме простого логирования.
НИКОГДА НЕ ВЕРЬ ИНФОРМАЦИИ, ПРЕДОСТАВЛЕННОЙ КЛИЕНТОМ, если она не на бумаге, не заверена личной подписью и не завизирована нотариусом.
 

AnrDaemon

Продвинутый новичок
не надо вообще, этот параметр имеет значение только при работе из cli, в остальных кейсах не нужно задавать имя сайта, можно просто писать урлы /url
Иногда всё таки надо. Например, логотип сайта должен вести на сайт, а не куда-то в корень файловой системы пользователя, сохранившего себе страничку на диск.
 
Сверху