rest - urlManager 在 Yii2 中找不到站点/索引
问题描述
我只是在 Yii 2 中创建了一个 Basic App 模式。
我尝试测试 RESTFull api。
默认情况下,该站点正在运行,但是当我更改 urlManager
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => 'cliente'],
],
],
我只收到 404 错误。
我丢失了网站/索引!!!
任何想法?
解决方案
site/index
由于此设置,操作不再起作用:'enableStrictParsing' => true
。从$enableStrictParsing
文档:
如果启用了严格解析,则传入的请求 URL 必须至少匹配其中之一
$rules
才能被视为有效请求。否则,请求的路径信息部分将被视为请求的路由。
所以如果你启用这个设置,你需要有匹配的 URL 规则来支持给定的 URL。在您的情况下,您只有一个 REST 端点规则,因此任何其他 URL 都不起作用。您应该禁用此设置或为您的主页添加规则:
'rules' => [
'' => 'site/index',
['class' => 'yii\rest\UrlRule', 'controller' => 'cliente'],
],
推荐阅读
- sql - 有没有办法在没有值占位符的情况下动态输入 SQL 查询的值
- github - 在 GitHub 页面上使用 Jekyll 不显示 MathJax 方程编号
- r - 将每一行除以一个常数并创建一个新列
- jekyll - 如何在 Liquid 中向数组添加新变量
- javascript - setInterval 不适用于 MS 中的长间隔
- android - 如何进行包含多个 APK 的原子批量更新
- android - 强制深层链接在外部打开(chrome 自定义标签)
- php - cakephp 显示两个具有关系的不同表的 ID 显示 table.name
- python - Python / Bloomberg API:将单个查询返回为 int
- python - 如何在 AWS lambda 中运行 python 库的 shell 脚本?