Laravel 路由组导致重定向循环
Posted
技术标签:
【中文标题】Laravel 路由组导致重定向循环【英文标题】:Laravel route groups lead to redirect loop 【发布时间】:2014-09-11 02:38:05 【问题描述】:各位开发者,
我在 laravel 路由方面有点挣扎。我只是构建了登录代码,登录似乎可以正常工作。但是,当我被重定向到“/”时,我最终会得到一个重定向循环。
当访客默认 url = "/" 并且经过身份验证时默认 url 也 = "/",所以我猜有些东西不是我想要的那样工作。
相关路由代码如下:
Route::group(["before" => "guest"], function()
Route::any("/", [
"as" => "home/splash",
"uses" => "HomeController@showSplash"
]);
);
Route::group(["before" => "auth"], function()
Route::any("/", [
"as" => "home/dashboard",
"uses" => "HomeController@showDashboard"
]);
);
当我删除之前的身份验证组时,它会加载启动页面。例如,当我将“auth”之前的名称更改为“auth5”时,它会加载仪表板..但是 auth5 没有在我的代码中的任何地方进行编程..所以要么我完全不知道这些路由组是如何应该工作,或者我做错了什么愚蠢的事情:p
最后但同样重要的是,我的身份验证过滤器也重定向到“/”
问候,
手球
更新 =>
/* GUESTS GROUP */
Route::group(["before" => "guest"], function()
Route::any("/splash", [
"as" => "home/splash",
"uses" => "HomeController@showSplash"
]);
/* AUTHENTICATED USERS GROUP */
Route::group(['before' => 'auth'], function()
Route::any("/dashboard", [
"as" => "home/dashboard",
"uses" => "HomeController@showDashboard"
]);
这可行..但现在我的网站无法再以“/”的形式访问。由于显而易见的原因,这令人沮丧..
当我在 before => 来宾组中添加这条路线时:
Route::any("/", [
"as" => "home/home",
"uses" => "HomeController@showSplash"
]);
它直接回到重定向循环。我的过滤器如下所示:
Route::filter('auth', function()
if (Auth::guest())
if (Request::ajax())
return Response::make('Unauthorized', 401);
else
return Redirect::guest('/splash');
);
Route::filter('guest', function()
if (Auth::check()) return Redirect::to('/');
);
我真的错过了一些明显的东西:)
【问题讨论】:
您可能还需要修改您的 filters.php。 @delmadord 正如我所说,我的身份验证过滤器已经重定向到“/”:p 您可以发布您的身份验证和访客过滤器代码 小更新,我认为它现在进入我的路由文件->它看到“之前”=>“auth”,运行重定向到“/”的过滤器代码,他返回它看到"之前" => "auth" 再次运行过滤器代码.. 等认为这是导致循环:) 只需将 auth filter 重定向到登录页面而不是 / 【参考方案1】:只需将身份验证过滤器重定向到登录页面而不是'/'
【讨论】:
我更新了我原来的帖子,我还在挣扎:( 现在我不确定你在做什么。guest
过滤器用于保护已登录用户的登录路由。
好吧,目标是相对简单的。我想将“/”作为我的默认主页.. 但我无法让它工作:)
您的问题过于臃肿 - 重新格式化并确保包含过滤器以及实际路由,其中包含 /
、splash
和 dashboard
的哪个路由应该做什么的信息。【参考方案2】:
长话短说,这些过滤器很烦人,在执行 http 请求时,您可以选择路由.. 或者您会得到 404。就这么简单!
if (Auth::guest())
<< Routes for guests go here >>
else
<< Routes when logged in go here >>
故事结束!
感谢大家的帮助!
【讨论】:
以上是关于Laravel 路由组导致重定向循环的主要内容,如果未能解决你的问题,请参考以下文章