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

Yii2的urlManager第二条自定义规则无法生效返回404如何解决?

Yii2 urlManager第二条规则失效排查解决思路
  • 调整规则匹配顺序
    Yii2的URL规则遵循从上到下的匹配逻辑,精准度越高的规则越要放在前面。你当前的通用控制器规则覆盖了persons控制器,放在自定义规则前面会优先匹配拦截,把第二条自定义规则移到第一条规则上方即可。
  • 修正路由末尾多余斜杠
    第二条规则的route参数末尾多余斜杠会导致路由匹配错误,将'route' => 'details/expenses/'修改为'route' => 'details/expenses'。
  • 统一id正则匹配规则
    第一条规则的id允许匹配字母、数字、下划线、横杠,而第二条规则的<id:\w+>仅允许匹配字母、数字、下划线,如果你的id参数包含横杠会直接匹配失败,修改为<id:[\w-]+>和全局规则保持一致。
  • 显式指定请求方式(可选)
    可以给自定义规则加上请求方式限制,避免其他请求类型误匹配,调整后的配置参考:
[
    'name' => 'Gets all expenses of a given person id',
    'pattern' => 'persons/<id:[\w-]+>/expenses',
    'route' => 'details/expenses',
    'verb' => ['GET']
],
  • 验证目标路由可用性
    先直接访问原生路由index.php?r=details/expenses&id=你的测试id,确认DetailsController的actionExpenses方法本身可以正常访问,排除控制器方法不存在、权限拦截、业务代码报错等问题。
  • 检查UrlRule类引入
    确认配置文件顶部已经正确引入REST规则类:use yii\rest\UrlRule;,不要和yii\web\UrlRule混淆导致规则解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:00