【发布时间】:2014-03-17 09:40:32
【问题描述】:
如果用户尝试在 URL 中键入控制器中不存在的操作,我如何重定向或呈现我的网站中的无效页面。我想要一个通用代码,因为我在网站上有很多控制器,这样如果用户输入错误或不存在的操作将重定向到页面说“您迷路了或找不到请求页面”?
我正在使用 Yii 框架。
【问题讨论】:
-
你是说404页面?
-
谢谢大家的回复。您的回复帮助我解决了我的问题。 :)
如果用户尝试在 URL 中键入控制器中不存在的操作,我如何重定向或呈现我的网站中的无效页面。我想要一个通用代码,因为我在网站上有很多控制器,这样如果用户输入错误或不存在的操作将重定向到页面说“您迷路了或找不到请求页面”?
我正在使用 Yii 框架。
【问题讨论】:
当涉及到控制器和动作时,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
),
),
这里有几件事:
useStrictParsing 防止 Yii 在尝试匹配 URL 时过于慷慨如果你说的是在控制器动作中抛出错误,你可以使用 Yii 的 CException 类来做到这一点。
public function actionCheckOk()
{
if($ok)
{
$this->render('ok');
}
else
{
throw new CHttpException(404, 'Page not found');
}
}
【讨论】: