我使用catchAll路由到我的配置
'catchAll' => ['site/page']
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但是所有请求都会执行此操作,即使是具有单独控制器/操作的操作也是如此.
如何映射路由以首先匹配控制器/操作,如果相应的控制器/操作不存在,那么回退以捕获所有路由?
这个配置做你想要的:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'contact' => 'site/contact',
'/' => 'page/view',
------> HERE
'/<url:[a-zA-Z0-9-]+>' => 'site/page',
],
],
Run Code Online (Sandbox Code Playgroud)
您应该修改规则以捕获更多字符.我用过这个,因为我知道我的路线.
catchAll当您想要将网站置于维护模式时,应该使用它.在这种情况下也可以使用错误捕获.