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

Laravel 12已登录访问登录页重定向至/home而非自定义URL问题

解决已登录状态访问登录页重定向地址问题

你设置的$redirectTo仅控制登录成功后的跳转地址,但已登录用户访问登录页时的拦截重定向,是由RedirectIfAuthenticated中间件处理的,默认指向/home,所以需要修改这个中间件的逻辑,或者自定义guest中间件的重定向规则。

方案一:修改全局RedirectIfAuthenticated中间件

找到app/Http/Middleware/RedirectIfAuthenticated.php文件,修改handle方法内的重定向地址:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    public function handle(Request $request, Closure $next, ...$guards)
    {
        $guards = empty($guards) ? [null] : $guards;

        foreach ($guards as $guard) {
            if (Auth::guard($guard)->check()) {
                // 替换为目标重定向地址
                return redirect('/admin/cities');
            }
        }

        return $next($request);
    }
}

方案二:在LoginController中自定义guest中间件规则

如果不想修改全局中间件,可直接在LoginController的构造方法里指定guest中间件的重定向目标:

public function __construct()
{
    $this->middleware('guest', ['redirectTo' => '/admin/cities'])->except('logout');
    $this->middleware('auth')->only('logout');
}

补充说明

$redirectTo属性仅负责用户完成登录操作后的跳转,而已登录用户访问登录页的拦截逻辑,属于未授权访问的拦截,由RedirectIfAuthenticated中间件独立控制,这是两个不同的流程,所以之前的修改不会生效。

内容的提问来源于stack exchange,提问作者Urmish Solanki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:42:07