Перенаправить HTTPS на http в cakephp htacess

Я хочу удалить принудительный 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>

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
69
2

Ответы 2

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

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

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

Убедитесь, что у вас есть следующая строка в 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. Чтобы перенаправить HTTP на HTTPS для всех страниц вашего веб-сайта, сначала откройте соответствующий файл виртуального хоста. Затем измените его, добавив конфигурацию ниже:

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>

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

Другие вопросы по теме