0

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

4

2 回答 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'));

检查此以获取更多信息http://www.yiiframework.com/wiki/56/#hh23

于 2013-04-03T07:39:58.610 回答