Получить текущий домен php

У меня есть мой сайт на сервере

Для этого у меня есть два домена:

Мне бы хотелось получить с текущим доменом PHP, но если я использую $_SERVER[‘HTTP_HOST’] , тогда это покажет мне

Как я могу получить домен, а не имя сервера? У меня PHP версия 5.2

6 ответов

108 Решение onehalf [2012-05-23 12:41:00]

попробуйте использовать это: $_SERVER[‘SERVER_NAME’]

EDIT:

33 Raz0rwire [2013-04-15 13:45:00]

Использование $_SERVER[‘HTTP_HOST’] получает меня (субдомен.) maindomain.extension. Кажется, это самое легкое решение для меня.

Изменить: если вы действительно перенаправляете через iFrame, вы можете добавить параметр get, который указывает домен.

И тогда вы можете установить переменную сеанса, которая сохраняет эти данные во всех приложениях.

Лучше всего использовать

И можно использовать как это

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

6 flowfree [2012-05-23 12:40:00]

Попробуйте $_SERVER[‘SERVER_NAME’] . Советы. Создайте файл PHP, который вызывает функцию phpinfo() , и просмотрите раздел "Переменные PHP". Есть куча полезных переменных, о которых мы никогда не думали.

Поздний ответ, но вот он идет:

Это даст вам чистую доменную зону без www

Я знаю, что это может быть не совсем по этому вопросу, но, по моему опыту, я нахожу сохранение WWW-кода текущего URL-адреса в полезной переменной.

Изменить: Кроме того, пожалуйста, ознакомьтесь с моим комментарием ниже, чтобы узнать, что это значит.

Это важно при определении того, следует ли отправлять вызовы Ajax с помощью "www" или без:

Читайте также  Проверка работы клавиатуры ноутбука

При отправке вызова Ajax имя домена должно совпадать с именем в адресной строке браузера, в противном случае в консоли будет Uncaught SecurityError.

Итак, я придумал это решение, чтобы решить проблему:

Затем, в зависимости от того, является ли $WWW истинным или false, выполните правильный вызов Ajax.

Я знаю, что это может показаться тривиальным, но это такая распространенная проблема, которую легко преодолеть.

У меня есть мой сайт на сервере

Для этого у меня есть два домена:

Мне бы хотелось получить с текущим доменом PHP, но если я использую $_SERVER[‘HTTP_HOST’] , тогда это покажет мне

Как я могу получить домен, а не имя сервера? У меня PHP версия 5.2

попробуйте использовать это: $_SERVER[‘SERVER_NAME’]

EDIT:

Лучше всего использовать

И можно использовать как это

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

Использование $_SERVER[‘HTTP_HOST’] получает меня (субдомен.) maindomain.extension. Кажется, это самое легкое решение для меня.

Изменить: если вы действительно перенаправляете через iFrame, вы можете добавить параметр get, который указывает домен.

И тогда вы можете установить переменную сеанса, которая сохраняет эти данные во всех приложениях.

Я не знаю, как этот ответ получил сотни тысяч просмотров без единого упоминания о проблемах безопасности.

Вы можете использовать следующее, но они небезопасны

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

В настройке Apache по умолчанию отключено usecanonicalname, в результате чего $_SERVER[‘SERVER_NAME’] с таким же заголовком $_SERVER[‘HTTP_HOST’] в любом случае использовал бы (плюс порт). Вот несколько вредоносных примеров. Если usecanonicalname включено, то это более безопасно, но я не знаю, работает ли этот тип конфигурации в большинстве сред.

  • Если имя_сервера не может быть разрешено, вместо него используется команда hostname операционной системы [источник].
  • Redhat по умолчанию включает usecanonical [ источник ].
  • Если заголовок хоста пропущен, сервер будет вести себя так, как если бы usecanonical был на [source].
Читайте также  Программа редактирования аудио файлов на русском

Правильный путь

Единственный гарантированный безопасный способ — хранить доменное имя там, где у вас есть доступ.

Многие фреймворки уже позаботились о том, чтобы сделать это для вас, поэтому обратитесь к документации по вашей конкретной фреймворке. Если вы не используете фреймворк, подойдет любой из следующих методов:

Для пользователей WordPress

Если вы используете WordPress, вы можете безопасно получить домен следующим образом:

(Но если вы создаете URL в WordPress, просто используйте home_url или site_url, или любую другую функцию URL.)

Как с помощью php, динамически, получить домен своего сайта не указывая его статически?
На случай смены домена.
Например: сейчас нахожусь на http://otvet.mail.ru/ask/, а нужно получить http://otvet.mail.ru/ю

Спасибо, за ответы.

и ты сам увидишь

если я не ошибаюсь то $_SERVER[‘HTTP_HOST’];

Ссылка на основную публикацию
Adblock
detector