Php 未调用Laravel未经身份验证的处理程序

Php 未调用Laravel未经身份验证的处理程序,php,laravel,authentication,laravel-5.3,Php,Laravel,Authentication,Laravel 5.3,我在我的Laravel应用程序中发现了一个奇怪的行为 我有这样的路线: Route::group(['as' => 'web', 'middleware' => ['web']], function() { Route::group(['middleware'=>['auth']], function() { Route::get('personal', 'Web\MyController@personal'); } } 在我的app/Exce

我在我的Laravel应用程序中发现了一个奇怪的行为

我有这样的路线:

Route::group(['as' => 'web', 'middleware' => ['web']], function()
{
    Route::group(['middleware'=>['auth']], function() {
        Route::get('personal', 'Web\MyController@personal');
    }
}
在我的app/Exceptions/Handler.php中,我定义了未经验证的函数,如下所示:

protected function unauthenticated($request, AuthenticationException $exception)
{
    if ($request->expectsJson()) {
        return response()->json(['error' => 'Unauthenticated.'], 401);
    }

    return redirect()->guest('login');
}
所以,当用户未通过身份验证并使用
auth
中间件点击路由时,它应该重定向到/login

这在本地服务器和开发服务器上运行良好。但在生产服务器中,它从未被调用。我试图在
呈现
未经验证的
函数中
dd()
,但从未调用它。 所以,在生产服务器上,如果未经身份验证的用户使用
auth
中间件点击路由,它将始终重定向到/auth而不是/login

你对这个问题有经验吗?
谢谢

您应该尽量不要修改核心处理程序

在这种情况下,路由文件不应使用嵌套路由

下面是一些正确的web.php路由示例

Route::group(['middleware' => ['web']], function() {

});

Route::group(['middleware' => ['auth']], function() {
    Route::get('personal', 'Web\MyController@personal');
});

Route::group(['middleware' => ['web', 'auth']], function() {
    Route::get('personal', 'Web\MyController@personal');
});

谢谢你的回复。但不幸的是,它不起作用。结果是一样的。此外,我没有编辑核心处理程序,它在app文件夹下,在那里编辑未经验证的重定向是安全的。我认为它和路由无关,因为它在本地服务器和开发服务器上工作。