Редирект с HTTPS на HTTP с помощью .htaccess

xsacha

Только чтение
Сообщения
1,262
Реакции
1,383
Баллы
5,850
Код:
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Если ссылка такого типа , то на http не происходит переадресация, как правильно написать правило ?

Да и параллельно вопрос, почему при работе на https некоторые скрипты перестают работать ? К примеру меню при наведении открывается, а на https она сразу открытая, получается скрипт не срабатывает.
 
Последнее редактирование:
Да и параллельно вопрос, почему при работе на https некоторые скрипты перестают работать ? К примеру меню при наведении открывается, а на https она сразу открытая, получается скрипт не срабатывает.
Потому что на https нельзя использовать активное содержимое (js-файлы, видео, аудио и т.п.), загружаемое с http.
 
xsacha, не понимаю в чем проблема. Скрипты со своего сайта грузятся по https сразу же, скрипты со сторонних сайтов - по большей части тоже уже с поддержкой https есть, которые такой поддержки не предоставляют - или скачивать локально или искать аналоги. Но все крупное, что обычно встраивают - видео, блоки социальных сетей и т.п. - поддерживают https.
 
xsacha, грузить потому что со своего сайта надо не с указанием ссылки абсолютной, а относительной. То есть вместо https://xenforo.info/styles/default/xenforo/logo02.png использовать styles/default/xenforo/logo02.png или //xenforo.info/styles/default/xenforo/logo02.png на крайний случай.

Редиректы вот эти по очереди попробуйте:
Код:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Код:
RewriteEngine On
RewriteCond %{SERVER_PORT} 443
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 
Не работает правило, если заходить , то работает, но если , то не работает редирикт.
 
xsacha, у вас в сообщении опечатка или реально разные домены .org и .ru? Правило не работать не может, весь файл .htaccess приведите, только перед этим на всякий случай сервер перезагрузите и еще раз проверьте.
 
Это оппечатка
Код:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 
xsacha, условия на редирект на другой протокол должны быть первоочередными, а не в самом конце.
Код:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
 
Ребят, та же самая тема, ссылки скриптов css, js и прочего на форуме относительные, т.е. я их даже никогда не правил - но в настройках стиля проверил - всё так и есть. Но когда делаю редирект на HTTPS, то шаблон загружается криво с указанием на то, что скрипты грузятся с HTTP и не могут быть обработаны. Хостинг говорит - обращайтесь к авторам движка :) Кто нить сталкивался?
 
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) {HTTP_HOST}%{REQUEST_URI} [R=301,L]

хм... у меня заработала именно такая конструкция:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


p.s. форум v.1.5.8
сервак на Centos 7 + Vesta панель + ssl сертификат от Let's Encrypt
 
еще же нужно не забыть про редиректы с www

для nginx делаю так
Код:
server {
    listen       80;
    server_name  site.ru www.site.ru;
    return       301 https://site.ru$request_uri;
}
server {
  listen 443 ssl;
  ssl_certificate     /etc/letsencrypt/live/site.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

  server_name  www.site.ru;
  return       301 https://site.ru$request_uri;
}

server {
  listen 443 ssl;
  ssl_certificate     /etc/letsencrypt/live/site.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

    server_name  site.ru;
 
еще же нужно не забыть про редиректы с www
я делаю проще)
+ 2 строки в корневой htaccess и все дела
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

p.s. в данном случае, редирект с www на без www
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу