Перенаправить Https на http в cakephp htacess - PullRequest
0 голосов
/ 05 октября 2018

Я хочу удалить принудительный https и перенаправить https: // на http: //

Мой .htaccess в папке webroot выглядит следующим образом:

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

Я пытался

<IfModule mod_rewrite.c>
  #Redirect HTTPS to HTTP
   RewriteCond %{HTTP:X-Forwarded-Proto} =https
   RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Но он не перенаправляется.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Убедитесь, что у вас есть следующая строка в httpd.conf (поддержка mod_rewrite включена по умолчанию):

LoadModule rewrite_module modules/mod_rewrite.so

Теперь вам просто нужно отредактировать или создать файл .htaccess в корневом каталоге вашегодомена и добавьте эти строки, чтобы перенаправить http на https:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Теперь, когда посетитель печатает http://www.yourdomain.com,, сервер автоматически перенаправляет HTTP на HTTPS https://www.yourdomain.com

Как перенаправить HTTP на HTTPS на виртуальном хосте Apache

Кроме того, чтобы заставить весь веб-трафик использовать HTTPS, вы также можете настроить файл виртуального хоста.Существует два важных момента, касающихся конфигурации виртуального хоста, если включен сертификат SSL.

Первый содержит конфигурацию для незащищенного порта 80.

Второй - для защищенного порта 443. Перенаправление HTTPHTTPS для всех страниц вашего сайта, сначала откройте соответствующий файл виртуального хоста.Затем измените его, добавив приведенную ниже конфигурацию:

NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect / https://www.yourdomain.com
</VirtualHost>

<VirtualHost _default_:443>
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>

После всех изменений не забудьте перезагрузить сервер.

0 голосов
/ 05 октября 2018

я думаю, что вы должны форсировать запрос http от вашего AppController, изменив его на что-то вроде этого и проверить, может ли это помочь

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

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