我所有的路线都重定向到主页

All my routes redirect to home page

我的所有 laravel 路由都不断重定向回主页。例如,当我转到 localhost:8000/about 它停留在主页上时,localhost:8000/about 出现在地址栏中但我仍在主页上。我没有收到错误。此列表中的最后三 (3) 个将我重定向到主页:

<?php
//No auth needed to access these

Route::get('/course/detail/{id}', [
    'uses' => 'CourseController@show',
    'as' => 'course.detail'
]);

Route::get('/{pagenum?}', [
    'uses' => 'CourseController@showAll',
    'as' => 'courses'
]);

Route::get('/instructor/detail/{id}', [
    'uses' => 'InstructorController@showDetail',
    'as' => 'instructor.detail'
]);

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

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

Route::get('/search', [
    'uses' => 'CourseController@search',
    'as' => 'courses.search'
]);

我有上面的路由,你需要在访问之前进行身份验证,我可以在登录后访问它们。你不需要登录就可以访问上面的那些。从我上面提到的六 (6) 个中,我可以在不被重定向的情况下访问前三 (3) 个。其他三 (3) 个将我重定向到主页,没有错误

我对 Laravel 并不陌生,这些路线以前是有效的。重定向的原因可能是什么?

您对定义路线的顺序有疑问。

您已定义:

Route::get('/{pagenum?}', [
    'uses' => 'CourseController@showAll',
    'as' => 'courses'
]);

表现得像 /anything-that-comes-here

和前缀 / 的其他路由定义被它阻止。

所以只需将最后 3 条路线移动到它上面:

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

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

Route::get('/search', [
    'uses' => 'CourseController@search',
    'as' => 'courses.search'
]);

Route::get('/{pagenum?}', [
    'uses' => 'CourseController@showAll',
    'as' => 'courses'
]);

第二条路线就是你要放在最后的问题:

Route::get('/{pagenum?}', [
    'uses' => 'CourseController@showAll',
    'as' => 'courses'
]);