我想对某些控制器强制使用 SSL,并为其他所有控制器删除 SSL。前段时间我在自定义 Controller 类的 _init() 中有一个片段,它没有像我希望的那样工作:
$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 中使用处理程序,但我宁愿检查所有请求。延续路线会是去这里的路吗?