【问题标题】:No Page Available - Laravel 5.2没有可用的页面 - Laravel 5.2
【发布时间】:2023-04-07 10:19:01
【问题描述】:

我从 github 下载了 CMS 项目,Laravel 版本 5.2。我在文件夹中安装了作曲家,并更改了 .env 文件中的数据库信息,项目工作正常。

但只有回家路线有效,其余路线给我“Opps no page avaible”

刀片文件很好,只是路线不起作用!

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/', function () {
  return view('welcome');
});

Route::auth();

Route::get('/home', 'HomeController@index');

Route::get('/post/{id}', ['as' => 'home.post', 'uses' => 'AdminPostsController@post']);

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

  Route::get('/admin', ['as' => 'admin.index', function () {
    return view('admin.index');
  }]);

  Route::resource('admin/users', 'AdminUsersController');

  Route::resource('admin/posts', 'AdminPostsController');

  Route::resource('admin/categories', 'AdminCategoriesController');

  Route::resource('admin/medias', 'AdminMediasController');

  Route::resource('admin/comments', 'PostCommentsController');

  Route::resource('admin/comment/replies', 'CommentRepliesController');


});

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

  Route::post('comment/reply', 'CommentRepliesController@createReply');

});

这里是 .htaccess 文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

【问题讨论】:

  • 你打开url重写了吗?
  • @Neabfi 是的,我在问题中添加了我的 .htaccess 文件
  • @hesham:检查我的 UPDATE 从答案希望这可以解决您的问题。

标签: php laravel laravel-5 laravel-5.2


【解决方案1】:

由于此路由是在您的资源路由之前定义的,因此您的路由将与资源操作不匹配,从而导致“Opps!没有可用的页面”。

我相信在您的资源路由定义之后移动该路由定义应该可以解决您的问题。

试一试,如果问题得到解决,请告诉我们。

【讨论】:

  • 我这样做了,但没有任何改变
【解决方案2】:

根据您描述的路线,其他路线与 admin middleware 分组。

只需与您的管理员middleware 确认有关 404 重定向的信息即可。

希望你能从那里得到一些提示。

更新
检查您的管理中间件并使用以下代码更新它:

public function handle($request, Closure $next)
{
    if ((Auth::check()))
    {
        //Here, YOURADMINROLE replace with your actual admin role..
        if ((Auth::user()->hasRole('YOURADMINROLE')))
        {
            return $next($request);
        }
    }

    App::abort(403, 'Access denied');
}

【讨论】:

  • @hesham:检查我的 UPDATE 从答案希望这可以解决您的问题。
猜你喜欢
  • 2018-11-21
  • 2016-04-19
  • 2017-04-01
  • 2018-01-08
  • 2016-05-01
  • 2016-08-26
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多