Лучшая практика для SSL в CakePHP

Я хотел бы реализовать HTTPS для всех страниц.

Я использую CakePHP 2.3 с "Auth» составная часть.

На самом деле единственный способ, который я нашел, это добавить "beforeFilter-состояния».

Но это очень грязно, потому что у меня многоне-SSL» запросы из-за Auth-компонента.





AppController.php --->

class AppController extends Controller {

  public function beforeFilter() {
    if (env("SERVER_PORT") != "443") {
      $this->Security->blackHoleCallback = 'forceSSL';
      $this->Security->requireSecure();
    }
  }

  public function forceSSL() {
    $this->redirect('https://' . env('SERVER_NAME') . $this->here);
  }

}







Проблема появляется, когда я не вошел в систему, и я пытаюсь получить доступ к своему веб-сайту

Запрос -> Ответ (из-за)ПОЛУЧИТЬ hxxp: // MYSITE / -> 302 hxxps: // MYSITE / (beforeFilter-redirection)ПОЛУЧИТЬ Hxxps: // MYSITE / -> 302 hxxp: // MYSITE / users / login (компонент Auth)ПОЛУЧИТЬ hxxp: // MYSITE / users / login -> 302 hxxps: // MYSITE / users / login (beforeFilter-redirection)ПОЛУЧИТЬ Hxxps: // MYSITE / users / login -> 200POST hxxps: // MYSITE / users / login (с кредитами) -> 302 hxxp: // MYSITE / (компонент Auth)ПОЛУЧИТЬ hxxp: // MYSITE / -> 302 hxxps://МОЙ САЙТ/ПОЛУЧИТЬ Hxxps: // MYSITE / -> 200

Итак, вы знаете другой способ сделать это.





NB: мне пришлось принудительно защитить свой cookie в core.php, потому что они не былит.

core.php --->

Configure::write('Session', array(
  'defaults' => 'php',
  'ini' => array(
    'session.cookie_secure' => true
  )));







Обратите внимание, что я также пытался форсировать SSL путем изменения .htaccess, но все, что я получил, это бесконечный цикл.

РЕДАКТИРОВАТЬ :

.Htaccess по умолчанию в CakePHP - это


   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

Что я пытался добавить:

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Ответы на вопрос(1)

Ваш ответ на вопрос