Я создаю приложение, которое использует поддомены и пользовательские имена доменов, которые находятся в базе данных для пользователей, поэтому, если запрос поступает из другого домена, ll проверить из базы данных, если этот пользовательский url действительно есть или когда запрос поступает из поддомена, я проверю, есть ли это. Если это я делаю свои вещи.Лучший способ определить, был ли запрос получен из другого домена или поддомена
Рассмотрим этот простой пример я ищу:
if(is_user_request())
{
$url = get_url();
// assuming that get_url() magically decides whether to output ..
// a custom domain (http://domain.tld)
// or a subdomain's first part (eg. "this".domain.tld)
}
else
{
// otherwise it's not a sub domain nor a custom domain,
// so we're dealing with our own main site.
}
Теперь, прежде чем идти вперед при условии, что, потому что у меня есть 0 репы, я здесь просят «ТЕХ кодов». У меня есть полностью рабочий способ сделать это, который заключается в следующем:
// hosts
$hosts = explode('.', $_SERVER['HTTP_HOST']);
// if there is a subdomain and that's under our $sitename
if(!empty($hosts[1]) AND $hosts[1] === Config::get('domain_mid_name'))
{
$url = $hosts[0];
$url_custom = false;
}
// if there is no subdomain, but the domain is our $sitename
elseif(!empty($hosts[0]) AND $hosts[0] === Config::get('domain_mid_name') AND !empty($hosts[1]) AND $hosts[1] !== Config::get('domain_mid_name'))
{
$url = false;
$url_custom = false;
}
// otherwise it's most likely that the request
// came from a entirely different domain name.
// which means it's probably $custom_site
else
{
$url = false;
$url_custom = implode('.', $hosts);
}
if($url)
{
return $url;
}
if($url_custom)
{
return $url_custom;
}
Однако, я уверен, что есть лучший способ сделать это. Потому что, прежде всего, HTTP_HOST не включает «http: //», поэтому мне нужно добавить это вручную, и я уверен, что это все, если, иначе дело просто перебор. Итак, люди умнее меня, просветите меня, пожалуйста.
О, и нет. У меня нет предопределенных поддоменов. У меня есть простой шаблон * .domain.tld, поэтому все поддомены переходят к основному скрипту. Я просто говорю об этом, потому что из моего поиска решения я нашел множество ответов, которые предлагали вручную создать поддомен, который даже не удаленно связан с тем, что я прошу, поэтому давайте пропустим этот вопрос.
Это лучший ответ. И отметить, что скорость очень ценится. –