2013-04-03 57 views
0

在Yii中,我找到了一種方法來限制訪問我的控制器操作的url僅限於'http'。我正在考慮如何以Yii方式獲取url,以便我可以將我的代碼放入數組的'表達式'屬性中。如何僅在訪問規則數組中允許'http'

+1

使用.htaccess,你可以限制你所有的URL在裏面。 –

回答

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部分)寫入components/Controller.php的基本控制器的init()方法中。

+0

這是我正在尋找的方法。謝謝! –

相關問題