我想強制某些控制器的SSL,並刪除SSL的一切。我在一個自定義的控制器類的_init()有一個片段,前一段時間,我曾希望它不工作:爲某些控制器強制使用SSL的最佳方法?
$ssl = $this->request->is('ssl');
$forceSecured = in_array($this->request->controller, array('Orders', 'Customers'));
//remove SSL for non-ssl pages
if ($ssl && !$forceSecured) {
return $this->redirect(Router::match(
$this->request->params,
$this->request,
array('absolute' => true, 'scheme' => 'http://')
)
);
}
// Force ssl on for ssl pages
if (!$ssl && $forceSecured) {
return $this->redirect(Router::match(
$this->request->params,
$this->request,
array('absolute' => true, 'scheme' => 'https://')
)
);
}
我支持遺留應用程序,所以我有多個硬盤已編碼的路線已定義。我確信我可以在Router :: connect中使用一個處理程序,但我寧願對所有請求進行檢查。延續路線是否會成爲這裏的路?
返回'Response'對象是我陷入困境的地方。另外,我想我沒有把它抽象出來。 注意,'$ this-> redirect line'缺少一個右括號。 –
那裏,我修好了。 –