Добрый день. Нужна помощь. Не могу решить следующую задачу. Есть сайт site.ru и поддомен belgorod.site.ru- как сделать, чтобы при запросе c поддоменом, сам поддомен являлся как индификатор при работе с основным доменом? Например, при запросе belgorod.site.ru я давал серверу понять, что мы работаем с "belgorod" и уже вытаскивал из БД нужную информацию и выводил ее на страницах: belgorod.site.ru/contact, belgorod.site.ru/reklama, и т.д и т.п
@Novi4ek_pro, варианты есть разные. Проверять можно регуляркой. Например, так PHP: <?php $urls = [ 'belgorod.site.ru/contact', 'site.ru/contact', 'kursk.site.ru/contact', 'site.ru', 'verhnie.petushki.site.ru', ]; foreach($urls as $url) { echo preg_match('/^.+(?=.site.ru)/', $url, $matches) ? $matches[0] : 'This is not a subdomain!', PHP_EOL; } Результат: Код (Text): belgorod This is not a subdomain! kursk This is not a subdomain! verhnie.petushki
А как переправлять с поддомена на основной, чтобы при этом сохранился url? Например, на странице site.ru/contact выводятся номера телефонов, адреса и т.д. Не очень хочу на каждом поддомене создавать одну и ту же страницу. Нужно сделать, чтобы при поддомене belgorod. я принимал это за индификатор,искал в бд и выводил на site.ru/contact только для визуализации использовать еще и поддомен- belgorod.site.ru/contact Через .htaccess ?
Не хотите дублировать на каждом, не дублируйте. На своих сайтах лучше использовать прямые ссылки без редиректов. Разделите все страницы на два вида, региональные и общие. При формировании ссылок на первые (со страниц на поддоменах) используйте абс. адресацию без учета домена (/path), а на вторые – абс. адресацию с использованием осн. домена (//domain/path). Закрывать редиректом можете только ради того, чтобы не закрывать 404-ой. В любом случае сопоставляйте признак региональности/общности у страницы и в имени хоста, откуда и определяйте, нужно ли отдавать страницу или нет. Если сайт располагается в именованном вирт. хосте (не в дефолтном и т.п.), то у вас имя хоста будет гарантированно располагаться в $_SERVER['HTTP_HOST']. Не забывайте, что в имени хоста может присутствовать незначащая точка в конце, ее нужно обрезать (www. тоже, если ваш скрипт занимается в том числе и этим). Во всех наших «мультисайтовых» движках сделано именно так.
Зачем? Вы же можете использовать псевдонимы. В этом случае и belgorod.site.ru, и Novi4ek_pro.site.ru будет открывать сайт, как если бы вы перешли просто по адресу site.ru
У меня так и пытается найти поддомен при запросе belgorod.site.ru, которого не существует. Нашел один вариант, попробуем его: в днс добавил: *.site.ru в конфиге Apache: ServerAlias *.site.ru И вроде должно быть вроде как динамическое создание поддоменов, и реагировать на запросом с поддоменом сервер не будет и работа идет с основного домена. Завтра проверю. Пока днс обновятся и ТП поменяет конфиг Apache