Laravel error: "Sorry, the page you are looking for could not be found"

Laravel error: "Sorry, the page you are looking for could not be found"

我需要更新同事的网站以添加 LDAP 连接。

我将 EasyPHP devserver 17.0 与 php 7.1.3 和 MySQL 5.7.17 一起使用。

我已经阅读了很多文档等以启动和恢复本地站点,因为它实际上正在工作。

一切正常所以我开始添加登录表单等...但是当我尝试从网站测试 link 时,它 return 我的错误 "Sorry, the page you are looking for could not be found" .所以我开始在论坛上搜索我发现了一些关于路线等的结果,但我测试过的一切都没有用。

因此,我决定使用网站上的备份,就像我在本地还原它时一样(我将 link 精确到其他页面,一切正常)。我检查 link 并再次检查 "Sorry, the page you are looking for could not be found"。我决定尝试另一个开发工具并下载 XAMP,完全相同的错误。我试过 Wamp,Laragon 总是同样的错误。

在 apache conf 中启用 mod_rewrite。

我的laravel框架版本是:5.5.39

所以我的文件夹看起来像:

路由内容 > web.php:

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

// Holidays
Route::get('/holidays/create', 'HolidayController@create')->name('holidays.create');
Route::post('/holidays', 'HolidayController@store')->name('holidays.store');
Route::get('/holidays/{holiday}/delete', 'HolidayController@destroy')->name('holidays.destroy');
Route::get('/holidays/{holiday}/edit', 'HolidayController@edit')->name('holidays.edit');
Route::post('/holidays/{holiday}', 'HolidayController@update')->name('holidays.update');

// Leave types
Route::get('/types/create', 'TypeController@create')->name('types.create');
Route::post('/types', 'TypeController@store')->name('types.store');
Route::get('/types/{type}/delete', 'TypeController@destroy')->name('types.destroy');
Route::get('/types/{type}/edit', 'TypeController@edit')->name('types.edit');
Route::post('/types/{type}', 'TypeController@update')->name('types.update');

// Users
Route::resource('users', 'UserController');
Route::get('/births', 'UserController@getAllBirths')->name('births');

// Leaves
Route::get('/calendar', 'LeaveController@index')->name('calendar');
Route::post('/leaves', 'LeaveController@store')->name('leaves.store');
Route::post('/leaves/{leave}', 'LeaveController@update')->name('leaves.update');
Route::get('/leaves/{leave}/delete', 'LeaveController@delete')->name('leaves.delete');
Route::get('/leaves', 'LeaveController@getAll')->name('leaves');

Route::get('/config', 'ConfigController@index')->name('config');

// Stats
Route::get('/statistics', 'StatsController@index')->name('stats.index');

Auth::routes();

我在 Httpd.conf 中的虚拟主机是:

<VirtualHost 127.0.0.1>
    DocumentRoot "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www"
    ServerName 127.0.0.1
    <Directory "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www">
        Options FollowSymLinks Indexes ExecCGI
        AllowOverride All
        Order deny,allow
        Allow from 127.0.0.1
        Deny from all
        Require all granted
    </Directory>
</VirtualHost>

我不知道我能做什么,但请问我是否需要更多信息来帮助我。

如果有帮助; gitLab link 来自我要恢复的站点:https://gitlab.com/balsigergil/btplan

更精确: Auth routes 被调用了两次,第一次是在 HomeControler.php: class HomeController 扩展控制器

{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('home');
    }
}

然后在中间件中 RedirectIfAuthenticated.php :

use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }

        return $next($request);
    }
}

你认为我需要从 HomeController 中删除这部分吗:

public function __construct()
{
    $this->middleware('auth');
}

这部分来自中间件:

if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }

我删除了 Routes/web 中的授权路由。php

因为您没有为您的应用程序使用身份验证,请从您的控制器中删除 auth 中间件,这会很好。

$this->middleware('auth'); //Remove this line

更改您的 VirtualHost DocumentRoot,使根目录成为 public 目录。

DocumentRoot "C:/Users/sadm-m263733/Desktop/EasyPHP-Devserver-17/eds-www/siteBTPlan/public"

Laravel 的根目录不是您的 Laravel 文件夹的根目录。您需要将文档根目录设置为 Laravel public 文件夹。

DocumentRoot "<your-laravel-path>/public"