Laravel路由组导致重定向循环

时间:2014-07-20 12:58:30

标签: loops redirect laravel laravel-routing

嘿有开发人员,

我在laravel路由方面有点挣扎。我只是构建登录代码并登录似乎正常工作。但是,当我被重定向到“/”时,我最终得到了一个重定向循环。

当guest是默认的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组时,它会加载启动页面。例如,当我将“auth”之前的名称更改为“auth5”时​​,它会加载仪表板..但是我的代码中的任何位置都没有编程auth5 ..所以要么我完全不知道这些路由组是如何应该工作或我做了一些愚蠢的错误:p

最后但同样重要的是,我的身份验证过滤器也会重定向到“/”

此致

Pwnball

更新=>

/* 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('/');
});

我必须真的错过一些明显的东西:)

2 个答案:

答案 0 :(得分:0)

只需将身份验证过滤器重定向到登录页面而不是'/'

答案 1 :(得分:0)

长话短说,那些过滤器只不过是烦人的,在做http请求时你可以选择路线..或者你会得到404.简单就是这样!

if (Auth::guest()) {
    << Routes for guests go here >>
} else {
    << Routes when logged in go here >>
}

故事结束!

感谢帮助人员!