ユーザー用のデータベースにあるサブドメインとカスタムドメイン名を使用するアプリケーションを構築しているため、リクエストが別のドメインから送信された場合、そのカスタム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.
}
先に進む前に、私には担当者がいないため、ここで「コード」を求めていると仮定します。私はこれを行うための完全に機能する方法を持っています。これは次のとおりです。
// 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 を設定しているので、すべてのサブドメインがメイン スクリプトに移動します。解決策の検索から、サブドメインを手動で作成することを提案する多くの回答が見つかったため、これを言っているだけです。これは、私が求めているものとはまったく関係がありません。