【发布时间】: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 重定向到登录页面而不是 /
标签: loops redirect laravel laravel-routing