cakephp2 принудительно перенаправляет https на windows сервер - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть субдомен, размещенный на windows сервере, разработанном в cakephp2.7, установленный SSL на сервере, он работает, если явно ввести https, но не преобразует автоматически http в https. Я хочу автоматически преобразовать любой URL в https

много чего перепробовал с файлом .htaccess, но ни один не работает текущий htaccess

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTPS} !on
 RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f    
 RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

также пробовал

public $components = array('Security');

public function beforeFilter() {
    $this->Security->blackHoleCallback = 'forceSSL';
    $this->Security->requireSecure();
}

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

с этим кодом, даже если ни один щелчок по ссылке не работал.

1 Ответ

0 голосов
/ 27 апреля 2020

это для других, если застрял в той же проблеме, я решил мою проблему, чтобы принудительно перенаправить на https, добавив следующий код в beforeFilter() метод класса `AppController '

    //https redirect
    if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off") {
        $location = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: ' . $location);
        exit;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...