Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

автоматический переход на https через htaccess (ssl сертификат)

10.05.2017, 15:00
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 53

купили ssl сертификат, обновили систему до последней и установили в настройках сайта "использовать HTTPS". Есть ли у кого-то рабочий вариант htaccess с переадресацией на https?
Все варианты, которые я пробовал, приводят к 500 ошибке. Варианты:
присланный хостером:
Код:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-SSL-Connect} !(^yes)
RewriteRule (.*) https://www\.site\.ru/$1


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Если NetCat стоит в подпапке, например mysite, то
# RewriteRule ^(.+)$ /mysite/netcat/require/e404.php
# в противном случае
RewriteRule ^(.+)$ /netcat/require/e404.php
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
</ifModule>

далее покажу какие еще я писал варианты вместо бордового текста:

Код:
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Код:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Код:
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
10.05.2017, 15:35
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 53

Код:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

тоже 500 ошибка
15.05.2017, 16:48
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 53

на Зеноне помог следующий код:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www.mks.ru
RewriteRule (.*) http://mks.ru/$1 [R=301,L]

RewriteCond %{HTTP:X-SSL-Connect} !(^yes)
RewriteRule (.*) https://mks\.ru/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Если NetCat стоит в подпапке, например mysite, то
# RewriteRule ^(.+)$ /mysite/netcat/require/e404.php
# в противном случае
RewriteRule ^(.+)$ /netcat/require/e404.php
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
</ifModule>
20.05.2017, 18:42
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 953

А на другом хостинге проблема так и сохранилась?
Вообще, многое от хостера зависит. Точнее, настроек сервера. Везде активность протокола приходится по-разному детектить...

03.10.2017, 17:56
uruser13

Зарегистрирован:
2016-01-19
Сообщений: 1

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,NC]
</IfModule>

Мне такой вариант подошел.
Вместо site.ru вписать свой домен. Вставить в самый конец файла .htaccess.
198 196 2017-10-03 17:56:57 14758
Описание проекта