В конфигах разных CMS и форумов прописывается базовый URL сайта по типу: Код (Text): $base_url = 'http://some_site/smf/'; // например, для известного форума SMF При этом при смене хостинга этот $base_url приходится прописывать заново вручную. Вопрос к корифеям. Возможно ли определять автоматически, программно, этот самый базовый URL сайта, чтобы все работало при смене хостинга? Пока ничего кроме Код (Text): $base_url = 'http://'.$_SERVER['SERVER_NAME'].'/'; не пришло в голову. UPD. Уточнение. Для внутренних путей и ссылок применяется относительная адресация, а для внешних - абсолютная адресация.
Re: Определение базового URL сайта программно при смене хост Еще советуют Код (Text): $base_url = 'http://'.$_SERVER['HTTP_HOST']; А здесь отличие между HTTP_HOST и SERVER_NAME http://www.hostland.su/books/php5/page/31.html Выдержка из текста по ссылке Переменную окружения http_host очень часто путают с другой переменной, server_name. В большинстве случаев серверы конфигурируют так, что обе переменные содержат одинаковое значение (например, в Apache для этого существует директива useCanonicaiName off), однако возникают ситуации, когда это не так. Величина http_host всегда идентична тому доменному имени, который ввел пользователь в браузере, в то время как server_name иногда может содержать строку, жестко записанную в конфигурации сервера (в Apache это происходит при указании UseCanonicaiName on). Еще такое пишут. Вообще в массиве $_SERVER добрая часть значений описывается, как "зависит от настроек сервера, работа не гарантирована", потому как $_SERVER - это то, что сказал сервер, а сказал он то, как настроил его админ. Это как бы одна из причин того, почему $base_url надежнее прописывать вручную, при смене хостинга, а не определять программно.
Re: Определение базового URL сайта программно при смене хост да, лучше прописывать, это так. в любом случае один хрен её где-то придётся прописывать.
Re: Определение базового URL сайта программно при смене хост не просто так умные люди пришли к такому решению. вам не кажется? если бы был 100% способ определить автоматически - то не прописывали бы в файле. тем более на чужих хостингах, где неизвестно как и что настроено.
Re: Определение базового URL сайта программно при смене хост Пример автоматического вычисления в Symfony2: https://github.com/symfony/HttpFoundation/blob/master/Request.php#L1663 Оно по крайней мере учитывает "особые случаи", уж не знаю все ли Считаю, что лучше прописывать в конфиге. Всё равно параметры соединения с БД и разные секреты приходится явно прописывать, почему бы не добавить еще base_url ?
Re: Определение базового URL сайта программно при смене хост 1854 строки кода ради экономии пары секунд времени администратора, но не со 100% вероятностью? Воистину, энтропия вселенной растет.