Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • entries
    5
  • comments
    108
  • views
    3,919

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


spectre

2,210 views

 Share

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

 

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

 

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

 

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

 

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

image.thumb.png.4482f607666ebb6d6c219f4b84990051.png

 

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 и видим что-то подобное

 

 

image.thumb.png.13ebcb8feda9fe607ce87baa18f775ff.png

 

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

 

и видим

 

[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
 Share

10 Comments


Recommended Comments

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

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

Link to comment
16 часов назад, Vetlucky777 сказал:

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

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

 

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

  • +1 1
Link to comment
Цитата

 

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

 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

 

Підкажіть, будь ласка, почему может быть так, что когда я ставлю этот редирект, то у формы входа в админку пропадают бутстраповские иконки, а сама админка перестаёт меня пускать? Если я уже в админке, то после этого редиректа вылетаю из неё при перезагрузке. Кроме того, на фронте в консоли появляются ошибки типа шрифты что то там некорректно делают с заголовками запросов, типа междоменный яваскрипт запрос, причём домен там тот же самый, но с www и без. 

Когда этот редирект убираю, всё работает.

Доп инфа (если это имеет значение)

Оксторе, включен сеопро.

На сервере в свойствах домена есть строка "Псевдонимы", там прописан домен с www. Он был прописан автоматически. Если его убрать, перестаёт работать бесплатный SSL сертификат.

Куда копать, где смотреть? @spectre

Edited by florapraktik
Link to comment
В 28.01.2023 в 20:20, florapraktik сказал:

Куда копать, где смотреть?

видимо у вас сайт с ввв

Link to comment
28.01.2023 в 21:57, spectre сказал:

видимо у вас сайт с ввв

спасибо. т.е. это "проблема" на сервере?

Link to comment
В 28.01.2023 в 22:00, florapraktik сказал:

спасибо. т.е. это "проблема" на сервере?

это не "проблема" , вам нужно выяснить что вы хотите в итоге получить и сделать как хочется 

 

варианты которые не описаны в статье встречаются раз в 5 лет 

Link to comment
28.01.2023 в 22:04, spectre сказал:

это не "проблема" , вам нужно выяснить что вы хотите в итоге получить и сделать как хочется 

 

варианты которые не описаны в статье встречаются раз в 5 лет 

Я хочу сделать редирект с ввв на без ввв. И оно как бы получается - редиректит. Но перестаёт пускать в админку. А если уже в админке, то выбрасывает из неё. 

Если редирект убираю, то пускает и не выбрасывает.

Link to comment
28.01.2023 в 22:15, chukcha сказал:

в конфигах убрать www

 

Дуже дякую! Ви вірно здогадались, де я, курва, накосячив.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.