Способ определения поддомена или домена php
"Определить домен или поддомен php". Нам нужен скрипт, который будет определять - это домен, или поддомен на php.
Подробное описание скрипта, который определяет - это поддомен или главное зеркало! С примерами и готовым скриптом!
Наверняка такой скрипт где-то существует, но я его не видел, поэтому такой скрипт мне пришлось написать самостоятельно!
Проверить - это поддомен или домен на php!
- Скрипт на php поддомен или домен на php.
- Описание скрипта на php поддомен или домен на php. Добавлено:
- Ссылка поддомен или домен на php.
- Скачать - что в архиве?
-
Ссылка поддомен или домен на php.
Естественно, что вы заходите сюда первый раз, но вы наверное увидели слово добавлено.
На страницах появилась дополнительная строка, которая формируется автоматически :
Какая стояла у нас задача!? На домене из данных сервера создать ссылку на поддомен - такого же файла
И на поддомене сделать ссылку на домен.
Ссылка домена на поддомене
Мы уже написали условие и знаем где домен или поддомен.
Нам нужно условие где:
echo 'это поддомен';Нам нужно :
$_SERVER["HTTP_HOST"]Он нам вернет:
example.dwweb.ruЕсли мы знаем, что нам вернет выше идущая переменная, то из неё надо вычленить поддомен "example". Для этого на понадобится explode + current + $_SERVER["HTTP_HOST"]
$example = current(explode('.', $_SERVER["HTTP_HOST"]));Мы получим:
exampleДалее получим путь до файла parse_url + $_SERVER['REQUEST_URI']
echo parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);Результат:
/php/poddomen/domen_or_subdomain.phpСоберем весь код ссылки:
$example = current(explode('.', $_SERVER["HTTP_HOST"]));
$domen_str = str_replace($example .'.', '', $_SERVER["HTTP_HOST"]);
$url = '//' .$domen_str . '/' . $example . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
echo $url;
И это выведет:
//dwweb.ru/example/php/poddomen/domen_or_subdomain.phpСсылка поддомена на домене
Домен особым образом получать не будем это и так будет - $_SERVER["HTTP_HOST"] - получим:
dwweb.ruРазделим "parse_url" в массив с помощью explode по разделителю "/" и возьмем оттуда ячейку №1:
$example = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) )[1] ;Выведем полученное здесь:
exampleПолучим путь, поскольку в пути у насесть поддомен(переменная $example) - его надо оттуда убрать! Это сделаем с помощью str_replace
$parse_str = str_replace('/'. $example , '', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));Выведем прямо здесь:
/php/domen/domen_or_subdomain.phpСоберем весь код ссылки поддомена на домене
$example = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) )[1] ;
$parse_str = str_replace('/'. $example , '', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$url = '//'. $example . '.' .$_SERVER["HTTP_HOST"] . $parse_str ;
echo $url;
И это выведет:
//example.dwweb.ru/php/domen/domen_or_subdomain.phpHttp - специально не показываю... Если у вас на домене "https", а на поддомене "http".
Либо наоборот, то...
возможно появление ошибки типа:
Скачать скрипт - домен или поддомен.
Скачиваем здесьЧто в архиве?
В архиве единственный файл "domen_or_subdomain.php" со скриптом, который определяет - это домен или поддомен.
Внимание! Скрипт будет работать только в том случае, если поддомен находится в корневой папке. Я конечно такого не видел, но в нашем мире, сегодня, такая херня происходит, что уже ничему не удивляешься!
Как это работает?
После скачивания архива.
Создаем поддомен у себя на сайте, для примера пусть это будет "example".
Бросаем файл "domen_or_subdomain.php" в папку "example".
Создаем на любой второй странице, в данном случае эта страница, которую вы сейчас читаете и создаете две ссылки с двумя адресами:
http://
example .dwweb.ru/путь_до_папки /domen_or_subdomain.phphttps://dwweb.ru/
example /путь_до_папки /domen_or_subdomain.phpИ У вас должно получиться, как у меня две ссылки на один и тот же файл, только один на поддомене, другой в папке "example"
http://
example .dwweb.ru/php/poddomen/domen_or_subdomain.phphttps://dwweb.ru/
example /php/poddomen/domen_or_subdomain.phpВнутри файла все ссылки формируются автоматически вне зависимости от местоположения.
Скрипт на php поддомен или домен на php.
Чтобы определить, что это - поддомен или домен нам понадобится
И домен https://dwweb.ru/
И поддомен http://example.dwweb.ru/
Естественно, что он(поддомен) существует:
Как вы наверное знаете, что поддомен может быть и поддоменом и папкой одновременно! Для этого сделаем две ссылки(надо сравнивать две строки №2 и №4):
http://
https://dwweb.ru/
Вы смогли посмотреть, одну и ту же страницу, расположенную одновременно на поддомене и домене!
Вывод домен или поддомен:
Если это поддомен, то:
basename выведет "example"
А $_SERVER[HTTP_HOST] выведет example.dwweb.ru
basename выведет "www"
А $_SERVER[HTTP_HOST] выведет dwweb.ru
Далее переходим к скрипту, который и определит на php, где мы находимся на домене или поддомене!
Описание скрипта на php поддомен или домен на php.
Для того, чтобы перейти к самому скрипту, надо акцентировать ваше внимание на вывод из предыдущего пункта:
Нам потребуется "$_SERVER['DOCUMENT_ROOT']" - путь на сервере до корневой, выведем это прямо здесь с помощью echo
Результат:
Если мы такую же запись поместим на страницу на поддомене, то получим:
Далее нам понадобится функция basename - получим последний элемент пути. Если мы её используем вот так:
В первом случае получим
Во втором :
Нам понадобится:
$_SERVER[HTTP_HOST] - получаем, либо домен, либо поддомен, в зависимости от расположения скрипта.
explode - разбиваем в массив по точке.
current - получаем первый элемент массива.
Соединяем все вместе :
Для домена получим:
Для поддомена получим: :
И теперь нам осталось написать условие и соединить выше приведенные наши изыскания:
<?
if(basename($_SERVER['DOCUMENT_ROOT']) == current(explode('.', $_SERVER[HTTP_HOST] )) )
{
echo 'это поддомен';
}
else
{
echo 'это не поддомен';
}
?>
Ну и далее размещаем данный код прямо здесь:
это не поддомен
Этот же скрипт размещаем на поддомене:
Если вы пришли со страницы об определении домена - то эти слова для вас!
Если вы сможете определить, что это поддомен, то всегда сможете вычленить из строки либо домен, либо поддомен, что вам требуется!
Смотри добавленный пункт, там ваша тема: