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

Laravel 9项目新增路由无法访问,出现404错误求助

Laravel 9 新路由404问题排查方案
  • 清除路由缓存:Laravel会缓存路由以提升性能,新增路由后旧缓存不会自动更新。在Laragon终端执行:
    php artisan route:clear
    执行后直接访问新路由,无需重启服务。

  • 校验路由定义语法:复制现有路由后修改的部分,要确保语法无错误,比如:
    旧路由示例:Route::get('/old-path', [OldController::class, 'index'])->name('old.route');
    新路由示例:Route::get('/old-path-new', [OldController::class, 'index'])->name('new.route');
    检查是否漏写括号、逗号,以及控制器类是否在文件顶部正确引入(如use App\Http\Controllers\OldController;)。

  • 确认路由已注册:执行php artisan route:list,在输出结果中搜索新路由的路径,确认它是否被系统正确加载。如果搜不到,说明web.php中存在语法错误(比如未闭合的大括号),导致路由文件未被完整解析。

  • 检查public/.htaccess配置:确保项目public目录下的.htaccess文件包含Laravel默认的重写规则,避免Apache无法将请求转发到Laravel入口文件:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # Send Requests To Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    
  • 核对访问路径:确认浏览器地址栏的路径和路由定义完全一致,注意是否存在多打/少打字符、大小写错误(虽Windows环境Apache不区分大小写,但仍需避免不必要的问题)。

  • 清除全量缓存:若上述步骤无效,可清除应用缓存和配置缓存:
    php artisan cache:clear
    php artisan config:clear

内容的提问来源于stack exchange,提问作者khalifa R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:30:40