如果在Yii中错误的URL或错误的控制器/操作,如何重定向到无效页面?

时间:2014-03-17 09:40:33

标签: php yii

如果用户尝试在控制台中键入不存在的操作,如何在我的网站中重定向或呈现无效页面。我想要一个通用的代码,因为我在网站上有很多控制器,这样如果用户输入错误或不存在的操作将重定向到页面上写着“你丢失或请求页面未找到”?

我正在使用Yii框架。

1 个答案:

答案 0 :(得分:0)

对于控制器和操作,Yii会自动执行此操作 - 如果您的URL管理器配置设置正确。

在config / main.php中的urlmanager部分:

'urlManager'=>array(
    'showScriptName' => false,
    'urlFormat'=>'path',
    'useStrictParsing'=>true,
    'rules'=>array(
         // Remove all the default Yii rules

         // Add your own specific rules
    ),
),

这里有几件事:

  • 我假设您使用的是Tutorial
  • 后的干净网址
  • useStrictParsing阻止Yii在尝试匹配网址时过于慷慨
  • 删除Yii的默认通用控制器:操作路径规则意味着您无法指定您未指定的应用程序。

如果您正在讨论在Controller Action中抛出错误,可以使用Yii的CException类来执行此操作。

public function actionCheckOk()
{
    if($ok)
    {
        $this->render('ok');
    }
    else
    {
        throw new CHttpException(404, 'Page not found');
    }
}