在 Yii 中,我正在寻找一种方法,如何将访问我的控制器操作的 url 限制为仅“http”。我正在考虑如何以 Yii 方式获取 url,以便我可以将我的代码放在数组的“表达式”属性中。
问问题
99 次
2 回答
1
您可以在基本控制器 ( components/Controller.php
) 中编写过滤器方法:
public function filterOnlyHttp($filterChain = null) {
if (Yii::app()->request->isSecureConnection) {
$this->redirect('http://'.$_SERVER['HTTP_HOST'].Yii::app()->request->requestUri);
}else
$filterChain->run();
}
它会将您重定向https://
到http://
请求。filters()
您可以为控制器中的方法中的特定控制器操作配置此过滤器:
public function filters()
{
return array(
'httpOnly',
);
}
如果您通常希望重定向所有请求,那么您https
也可以将if
上述内容(不包括该else
部分)放入init()
您的基本控制器的方法中components/Controller.php
。
于 2013-04-03T07:43:21.477 回答
-1
试试 defaultScheme/validSchemes
数组('url','url','defaultScheme' => 'http')
数组('url','url','validSchemes' => 数组('http'));
于 2013-04-03T07:39:58.610 回答