在Yii中,我找到了一种方法,如何将访问我的控制器操作的URL限制为“http”。我正在考虑如何以Yii方式获取URL,以便我可以将我的代码放在数组的'expression'属性中。
答案 0 :(得分: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()
部分){ {1}}中基本控制器的{1}}方法。
答案 1 :(得分:-1)
尝试defaultScheme / validSchemes
array('url','url','defaultScheme'=>'http')
array('url','url','validSchemes'=> array('http'));
选中此处以获取更多信息http://www.yiiframework.com/wiki/56/#hh23