Sentinel - https://github.com/rydurham/Sentinel - を使用してアプリのユーザー認証を処理し、routes.php の「admin」サブドメイン全体を次のようにまとめています。
Route::group([ "domain" => 'app.domain.dev', 'before' => 'Sentinel\auth' ], function()
{
Route::group(array('prefix' => 'one'), function()
{
...
});
Route::group(array('prefix' => 'two'), function()
{
...
});
Route::get('/', array('as' => 'home', 'uses' => 'DashboardController@index'));
});
ローカル マシンでは、すべて正常に動作します。app.domain.dev は、ログインしている場合は管理ダッシュボードを表示し、ログインしていない場合はログイン ページを表示し、ログアウトするとユーザーはログイン ページに戻ります。
ただし、Forge を介してデプロイすると、ログインしていない場合、app.domain.dev は無限ループ エラーを引き起こします。それでも、/login は引き続きアクセス可能で機能しており、ログインすると、ダッシュボードが正常にロードされます。ユーザーがログアウトすると、再び無限ループ エラーが発生します。
なぜこれがローカルで動作し、展開されていないのかはわかりませんが、'Sentinel\auth' フィルタリングされたグループ内にある 'home' ルートに何か関係があるのではないでしょうか?
Sentinel の認証フィルター:
Route::filter('Sentinel\auth', function()
{
if (!Sentry::check()) return Redirect::guest(Config::get('Sentinel::config.routes.login'));
});
...そして config.routes.login は「login」に設定されています。
私はこの質問の類似点を理解しています-laravelのリダイレクトループ-しかし、私を混乱させるのは、ローカルで動作している/展開が壊れていることです。