CakePHP中的SSL重定向

CakePHP中的SSL重定向,php,cakephp,ssl-certificate,Php,Cakephp,Ssl Certificate,当任何用户在cakePHP中键入“”时,我们如何将“”重定向到“”。在加载任何php之前,您可以使用.htacces文件执行此操作。这样服务器就不需要加载PHP脚本 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] 虽然目前公认的答案集中在使用apache的重写模块上,但在许多情况下,这个答案并不适用,例如,当根本不使用apache时,或者当重写模块

当任何用户在cakePHP中键入“”时,我们如何将“”重定向到“”。

在加载任何php之前,您可以使用.htacces文件执行此操作。这样服务器就不需要加载PHP脚本

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

虽然目前公认的答案集中在使用apache的重写模块上,但在许多情况下,这个答案并不适用,例如,当根本不使用apache时,或者当重写模块未使用且无法启用时,就是一个明显的例子

因此,一个更一般的答案是将其添加到
AppController

public function beforeFilter(Event $event) {
    if (!env('HTTPS')) {
        return $this->redirect('https://' . $this->request->host() . $this->request->here(), 301);
    }
}
如果不使用https,将永久重定向到https下的同一url

您没有指定cake的版本,因此上面的代码是cakephp 3代码,只需从函数参数中删除
Event$Event
,使其成为cake 2