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

Yii2手动新增页面后通过urlManager访问出现404错误的问题排查

解决Yii2新增页面404的问题

这个404问题其实是Yii2 MVC架构的典型小疏漏——你只创建了视图文件,但没给它配置对应的控制器动作,框架找不到处理这个请求的入口,自然就返回404啦。下面是具体的解决步骤:

1. 在SiteController中添加对应动作方法

Yii2的路由规则是控制器ID/动作ID对应控制器里的action动作ID(动作ID首字母大写)。你访问的site/new对应的是SiteController里的actionNew方法,而你现在没有这个方法,所以框架无法处理请求。

打开backend/controllers/SiteController.php,在类中添加以下代码:

public function actionNew()
{
    // 渲染你创建的new.php视图
    return $this->render('new');
}

2. 检查路由配置(可选)

如果你没有修改过backend/config/main.php里的urlManager配置,默认的路由规则已经支持controller/action的访问方式,这一步可以跳过。但如果你启用了美化URL或者自定义了路由规则,需要确保规则中允许site/new的路由解析。比如默认的规则配置大概是这样的:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        // 这里可以添加自定义规则,默认情况下空数组也会支持基础路由
    ],
],

3. 验证链接生成(优化建议)

你当前用的Yii::$app->urlManager->createUrl('site/new')是有效的,但Yii2推荐使用更简洁的Url::to()助手方法,记得先引入命名空间:

// 在视图文件顶部引入
use yii\helpers\Url;

// 生成链接
<a href="<?= Url::to(['site/new']); ?>"> New</a>

做完第一步之后,再点击链接应该就能正常访问new.php页面啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:49:14