[英]Enabling pretty URLs / urlManager completely breaks Yii 2 application runnikg as a REST micro-framework
tl; dr My Yii 2 应用程序, 作为微框架运行,在使用标准(“不漂亮”)URL 时工作得很好。 但是,当在配置中启用urlManager
应用程序组件时,整个应用程序会完全中断,并且每次调用它都会以 404 结束。
在我的另一个问题之后,我正在尝试运行 Yii 2 应用程序的极简版本(微框架)来充当 RESTful 端点。 我已按照指南进行操作,当我调用标准(“不漂亮”)URL 时,一切似乎都正常:
正如指南中所建议的,我在我的应用程序中启用了路由/漂亮的 URL :
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => 'post'],
],
]
突然我的应用程序完全停止工作了。 它既不漂亮:
也不是漂亮的网址:
它甚至无法为默认控制器和操作提供服务—— site/index
。
我错过了什么?
看来我拥有我需要的一切。 按照我的指南:
site
)和默认操作( index
)db
组件,运行迁移并创建数据库RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
为了使整个工作正常进行,我还必须做什么,或者我在这里缺少什么? 谢谢!
删除这一行:
'enableStrictParsing' => true,
这个问题来自一个误解。 我不知道当启用漂亮的 URL 时, yii\rest\UrlRule::$pluralize
默认设置为true 。 这意味着请求必须是:
http://localhost/micro-app/posts
(复数控制器名称;注意末尾的“s”)
不是:
http://localhost/micro-app/post
(单数控制器名称)
当启用漂亮的 URL 时,常规 URL 不再起作用也是完全正常的。 这就是启用漂亮 URL 时在http://localhost/micro-app/index.php?r=post
URL 上获取404 File Not Found的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.