Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart
  • записей
    5
  • комментарий
    101
  • просмотров
    3 118

Как же сделать редирект на HTTPS и не получить циклическую переадресацию


spectre

1 517 просмотров

 Поделиться

На форуме каждый день появляется куча тем что "подключили SSL и все сломалось, циклический редирект и тп"

 

В подавляющем большинстве случаев нужен редирект с www на без и на https с без

 

Первым делом отключаем редиректы в панели хостинга, до добра они никогда не доводят и делаем сами

 

Инструкция для Apache т.к. почти на всех хостингах используется он

 

Все правила редиректов нужно вставлять в файл .htaccess который лежит в корне магазина в этот блок после RewriteBase / !

 

www редирект простой

 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

 

с HTTPS все интереснее, т.к. разные хостинги используютт разные сборки вебсерверов и методы определения HTTPS они разные

 

Вторая часть правила у нас будет неизменная

 

RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

 

А вот первую придется выбрать из

 

RewriteCond %{HTTP:SSL} !=1 

RewriteCond %{HTTPS} =off 

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{ENV:HTTPS} !on

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteCond %{HTTP:X-HTTPS} !1

Этого хватит для почти всех хостингов 

 

Расскажу как понять какой тип определения HTTPS вам нужен

 

открываем файл index.php

и пишем туда

 

echo '<pre>';
print_r($_SERVER);
echo '</pre>';

 

открываем сайт по http и видим что-то подобное

 

 

 

ищем знакомые слова из блока с редиректами

 

и видим

 

[HTTP_X_FORWARDED_PROTO] => http

 

Значит у нас получится конструкция такого рода

 

#Правила для редиректа
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#Правила для с www на без
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

 

если хотите чтобы robots.txt был доступен роботам по http

то первым правилом этого блока нужно добавить

 

RewriteCond %{REQUEST_FILENAME} !^robots.txt$ [NC]

 

 

Если вам лень читать это все и вы просто промотали сюда - подберите просто методом тыка, это занимает 5 минут

 

 

Спасибо за внимание, ваш spectre

 

  • +1 16
 Поделиться

3 комментария


Рекомендованные комментарии

как понять на данный момент на сайте есть циклическая переадресация или нет? 

чтоб зря не делать эти манипуляции 

Ссылка на комментарий
16 часов назад, Vetlucky777 сказал:

как понять на данный момент на сайте есть циклическая переадресация или нет? 

чтоб зря не делать эти манипуляции 

 

Если бы была - сайт бы не открывался)

  • +1 1
Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.