在 laravel 11 的新项目结构中,用 bootstrap/app.php 的 redirectgueststo() 为后台访客指定登录页。对受 auth 保护的页面,按请求路径选择具名路由。两个登录页需要事先注册。
在已有中间件回调里按后台路径分流
把配置合并到 bootstrap/app.php 现有的 withMiddleware 回调。路径同时匹配后台首页和下级页面。
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Http\Request;
// 在 Application 配置链中
->withMiddleware(function (Middleware $middleware): void {
$middleware->redirectGuestsTo(function (Request $request): string {
return $request->is('admin', 'admin/*')
? route('admin.login')
: route('login');
});
})
确认 login 和 admin.login 两条具名路由都存在,登录页放在受 auth 保护的后台路由组外。
核对登录路由和受保护页面
在已有的 routes/web.php 中核对这些关系。下面两条路由假定对应视图已存在,提交登录的处理沿用应用原有实现。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
use Illuminate\Support\Facades\Route;
Route::view('/admin/login', 'admin.login')->name('admin.login');
Route::view('/admin', 'admin.dashboard')->middleware('auth');若项目已注册同一路由,直接修改现有定义。auth 只检查是否登录,后台角色授权仍由现有策略或权限中间件处理。
验证浏览器跳转和 JSON 请求的区别
在本地开发环境使用未登录请求检查响应头。将示例端口替换为本地应用实际端口。
php artisan route:list --path=admin -v curl -i http://127.0.0.1:8000/admin curl -i -H 'Accept: application/json' http://127.0.0.1:8000/admin
标准异常处理下,普通请求应得到 302 且 Location 指向后台登录页,JSON 请求应得到 401。若登录页自己也返回同一个 Location,查看其路由中间件是否误用了 auth。

















