【问题标题】:Laravel-5 Redirect LoopLaravel-5 重定向循环
【发布时间】:2015-08-04 17:13:36
【问题描述】:

我的 routes.php 是这样的:

Route::get('deneme/{test}', 'TestController@index');

Route::get('send', 'MailController@index');

Route::get('elfinder/tinymce4', 'Barryvdh\Elfinder\ElfinderController@showTinyMCE4');

Route::group(['middleware' => ['auth', 'perm'], 'prefix' => 'admin'], function(){

    Route::get('/', ['as' => 'admin', 'uses' => 'Admin\DashboardController@index']);

    Route::resource('kategori', 'Admin\KategoriController');
    Route::resource('icerik', 'Admin\ContentController');

    // Property Routes
    Route::resource('property', 'Admin\PropertyController');
    Route::post("property/lang", ['uses' => 'Admin\PropertyController@langAdd', 'as' => 'admin.property.lang_add']);
    Route::get("property/lang/{id}", ['uses' => 'Admin\PropertyController@langDelete', 'as' => 'admin.property.lang_delete']);

    Route::get('users/add', 'Admin\UsersController@add');
    Route::get('content/add', 'Admin\ContentController@add');

});

Route::get('admin/login',['as' => 'admin.get_login', function(){
    return view("admin.login");
}]);
Route::post('admin/login', ['as' => 'admin.do_login', 'uses' => 'Auth\AuthController@postLogin']);
Route::get('admin/logout', ['as' => 'admin.logout', 'uses' => 'Auth\AuthController@getLogout']);

当我向 site.dev/admin 发送请求时,浏览器会说:

这个网页有一个重定向循环

ERR_TOO_MANY_REDIRECTS

我已删除轮换并将 PHP 标记留空,但此 url -site.dev/admin- 返回相同的错误。我测试了 2 个浏览器,Chrome 和 Firefox。我认为这个错误源于浏览器缓存和安装的 Opera 浏览器 - 之前没有安装 - 但仍然得到同样的错误。

【问题讨论】:

  • 你能显示authperm中间件吗?
  • auth: public function handle($request, Closure $next) { if ($this->auth->guest()) { if ($request->ajax()) { return response( '未经授权。', 401); } else { return redirect()->guest(route('admin.get_login')); } } 返回 $next($request); } perm: public function handle($request, Closure $next) { return $next($request); }
  • 我没有看到任何可以处理空白路线的东西。
  • 我用 xdebug 进行了调试,但从第一个 php 代码开始没有发生任何事情。我在 public/index.php 第 22 行设置了断点,但它没有触发。第 22 行是 laravel 中的第一个 php 代码:require DIR.'/../bootstrap/autoload.php';
  • 将底部的 3 个 admin/* 路由中的每一个移动到 admin 组上方的某个位置,然后重试。

标签: php laravel redirect laravel-5 laravel-routing


【解决方案1】:

我解决了这个问题。 public 文件夹下有一个名为 admin 的文件夹。所以我像这样改变了我的轮换:

Route::group(['middleware' => ['auth', 'perm'], 'prefix' => 'adminpanel'], function(){

Route::get('/', ['as' => 'admin', 'uses' => 'Admin\DashboardController@index']);

Route::resource('kategori', 'Admin\KategoriController');
Route::resource('icerik', 'Admin\ContentController');

// Property Routes
Route::resource('property', 'Admin\PropertyController');
Route::post("property/lang", ['uses' => 'Admin\PropertyController@langAdd', 'as' => 'admin.property.lang_add']);
Route::get("property/lang/{id}", ['uses' => 'Admin\PropertyController@langDelete', 'as' => 'admin.property.lang_delete']);

Route::get('users/add', 'Admin\UsersController@add');
Route::get('content/add', 'Admin\ContentController@add');

});

并且新的url轮换不会与public文件夹下的任何文件夹发生冲突。

好作品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2016-03-26
    • 2016-03-16
    • 2014-06-02
    • 2015-03-17
    • 2015-05-16
    • 2015-11-09
    相关资源
    最近更新 更多