かんたんだよ。.htaccess
まず、Laravel が提供するデフォルトからファイルを変更しないでください。デフォルトでは、ドメインへのすべてのリクエストindex.php
はファイルにルーティングされますが、これはまさに私たちが望んでいるものです.
次に、routes.php
ファイルで「before」フィルターを使用します。これにより、他の処理が行われる前に、アプリケーションへのすべての要求がフィルター処理されます。
Route::filter('before', function()
{
// Check if we asked for a user
$server = explode('.', Request::server('HTTP_HOST'));
if (count($server) == 3)
{
// We have 3 parts of the domain - therefore a subdomain was requested
// i.e. user.domain.com
// Check if user is valid and has access - i.e. is logged in
if (Auth::user()->username === $server[0])
{
// User is logged in, and has access to this subdomain
// DO WHATEVER YOU WANT HERE WITH THE USER PROFILE
echo "your username is ".$server[0];
}
else
{
// Username is invalid, or user does not have access to this subdomain
// SHOW ERROR OR WHATEVER YOU WANT
echo "error - you do not have access to here";
}
}
else
{
// Only 2 parts of domain was requested - therefore no subdomain was requested
// i.e. domain.com
// Do nothing here - will just route normally - but you could put logic here if you want
}
});
編集: 国の拡張子 (つまり、domain.com.au または domain.com.eu) がある場合は、count($server) を変更して、3 ではなく 4 を確認する必要があります。