You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Jetstream修改默认登录路由URL为首页路由

修改Jetstream登录路由为首页/并移除/login路由

方法一:快速调整(仅替换GET登录页面)

这种方式适合只需要把首页设为登录页,但保留原POST提交路由的场景:

  1. 打开routes/web.php,添加以下代码:
// 移除Jetstream默认的GET /login路由
Route::forgetRoute('login');

// 将首页/设为登录视图,沿用原路由名称保证认证逻辑正常
Route::get('/', function () {
    return view('auth.login');
})->name('login');
  1. 此时访问/会显示登录页面,/login的GET路由已被移除,但原POST /login的登录提交路由仍存在。

方法二:彻底替换所有登录路由(推荐)

Jetstream底层依赖Fortify处理认证,直接修改Fortify的路由配置可彻底替换所有登录相关路由:

  1. 打开app/Providers/FortifyServiceProvider.php,在boot方法中添加路由自定义逻辑:
use Laravel\Fortify\Fortify;

public function boot()
{
    // 指定登录视图(保持原有视图不变)
    Fortify::loginView(function () {
        return view('auth.login');
    });

    // 自定义登录路由,替换默认的/login
    Fortify::routes(function ($router) {
        // 将GET /设为登录页面,命名为login
        $router->get('/', [\Laravel\Fortify\Http\Controllers\AuthenticatedSessionController::class, 'create'])->name('login');
        // 将POST /设为登录提交路由,命名为login.store
        $router->post('/', [\Laravel\Fortify\Http\Controllers\AuthenticatedSessionController::class, 'store'])->name('login.store');
        
        // 移除原有的/login相关路由
        $router->forgetRoute('login');
        $router->forgetRoute('login.store');
    });

    // 保留Jetstream其他默认路由(如注册、密码重置等,不需要可删除对应行)
    Fortify::registerRoutes();
    Fortify::passwordResetRoutes();
}
  1. 保存后,访问/会显示登录页面,提交表单直接提交到/,原/login的GET和POST路由均被移除。

关键注意点

  • 必须保留路由名称login和login.store,Laravel的认证中间件(如auth)会依赖这些名称完成未登录跳转、表单提交等逻辑。

内容的提问来源于stack exchange,提问作者moemen saadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:17:45