如何仅在Access Rules数组中允许“http”

时间:2013-04-03 07:00:09

标签: php yii

在Yii中,我找到了一种方法,如何将访问我的控制器操作的URL限制为“http”。我正在考虑如何以Yii方式获取URL,以便我可以将我的代码放在数组的'expression'属性中。

2 个答案:

答案 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

相关问题