У меня есть сайт на сервере
http://www.myserver.uk.com
Для этого у меня есть два домена:
http://one.com
а также
http://two.com
я бы хотел получить с текущим доменом PHP, но если я использую $_SERVER['HTTP_HOST']
тогда это покажет мне
myserver.uk.com
вместо:
one.com or two.com
Как я могу получить домен, а не имя сервера? У меня PHP версии 5.2
попробуйте использовать это: $_SERVER['SERVER_NAME']
или разбор
$_SERVER['REQUEST_URI']
РЕДАКТИРОВАТЬ:
apache_request_headers ()
Использование $_SERVER['HTTP_HOST']
получает меня (субдомен.) Maindomain.extension. Похоже, это самое простое решение для меня.
Изменить: если вы действительно перенаправляете через iFrame, вы можете добавить параметр get, который указывает домен.
<iframe src="myserver.uk.com?domain=one.com"/>
И тогда вы можете установить переменную сеанса, которая сохраняет эти данные во всех приложениях.
Наилучшее использование
echo $_SERVER['HTTP_HOST'];
И можно использовать как это
if(strpos( $_SERVER['HTTP_HOST'], 'banana.com') !== false){ echo "Yes this is indeed the banana.com domain"; }
Этот код ниже – это хороший способ увидеть все переменные в $ _SERVER в структурированном HTML-выпуске с выделенными вами ключевыми словами, который останавливается сразу после выполнения. Поскольку я иногда забываю, какой из них использовать сам – я думаю, что это может быть отличным.
<?php // change banana.com to the domain you were looking for.. $wordToHighlight= "banana.com"; $serverVarHighlighted = str_replace( $wordToHighlight, '<span style=\'background-color:#883399; color: #FFFFFF;\'>'. $wordToHighlight .'</span>', $_SERVER ); echo "<pre>"; print_r( $serverVarHighlighted ); echo "</pre>"; exit(); ?>
Попробуйте $_SERVER['SERVER_NAME']
. Советы. Создайте файл PHP, который вызывает функцию phpinfo()
и просмотрите раздел «Переменные PHP». Есть куча полезных переменных, о которых мы никогда не думали.
Поздний ответ, но вот он идет:
$currentDomain = preg_replace('/www\./i', '', $_SERVER['SERVER_NAME']);
Это даст вам чистое доменное имя без www
Я знаю, что это может быть не совсем по этому вопросу, но, по моему опыту, я нахожу сохранение WWW-существующего URL-адреса в переменной полезной.
Изменить: Кроме того, пожалуйста, см. Мой комментарий ниже, чтобы посмотреть, что это такое.
Это важно при определении того, следует ли отправлять вызовы Ajax с помощью «www» или без:
$.ajax("url" : "www.site.com/script.php", ... $.ajax("url" : "site.com/script.php", ...
При отправке вызова Ajax имя домена должно совпадать с именем в адресной строке браузера, иначе в консоли должно быть установлено значение « Очистить» .
Поэтому я придумал это решение для решения проблемы:
<?php substr($_SERVER['SERVER_NAME'], 0, 3) == "www" ? $WWW = true : $WWW = false; if ($WWW) { /* We have www.example.com */ } else { /* We have example.com */ } ?>
Затем, в зависимости от того, является ли WWW истинным, или false, выполните правильный вызов Ajax.
Я знаю, что это может показаться тривиальным, но это такая распространенная проблема, которую легко преодолеть.