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

Yii 2使用Gii生成CRUD后访问对应路径报404错误如何解决?

Yii2后端Product路由404问题排查方案

1. 优先排查基础拼写与结构错误

  • 控制器文件名修正:你提供的结构中控制器命名为ProductContoller,拼写错误,正确名称应为ProductController(少写了1个字母r),需同时保证文件内的类名和文件名完全一致,命名空间为namespace backend\controllers;,且继承yii\web\Controller。
  • 视图目录结构修正:CRUD生成的视图不应放在views/layouts目录下(该目录为全局布局文件目录),需将product视图文件夹移动到backend/views/根目录下,修正后结构如下:
backend/
├── controllers/
│   └── ProductController.php
├── views/
│   └── product/
│       ├── _form.php
│       ├── _search.php
│       ├── create.php
│       ├── index.php
│       ├── update.php
│       └── view.php

2. 检查Web服务器伪静态配置

  • 确认域名yii2-ecommerce.localhost的根目录指向backend/web/,而非项目根目录。
  • 确认backend/web/目录下配置了对应伪静态规则:
    • Apache环境需新增.htaccess文件,内容如下:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . index.php
      
    • Nginx环境需在站点配置中新增规则:
      location / {
          try_files $uri $uri/ /index.php$is_args$args;
      }
      

3. 检查路由配置

  • 你当前urlManager的rules为空,可先尝试访问yii2-ecommerce.localhost/product/index排查是否为默认动作匹配问题。
  • 如果需要直接通过/product访问列表页,需在rules中新增对应映射:
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'product' => 'product/index',
            // 其他业务规则按需补充
        ],
    ],
    

4. 检查权限拦截配置

  • 如果你开启了RBAC权限控制,确认当前登录账号有ProductController对应动作的访问权限。
  • 可临时注释ProductController中behaviors方法里的AccessControl相关配置,排除权限拦截导致的404问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:09:03