Перенаправление http в https

Главные вкладки

Аватар пользователя BOGrus BOGrus 9 октября 2014 в 14:50

Установил ssl сертификат и хочу что бы все страницы сайта перенаправлялись с http на https
В .htaccess добавил

RewriteCond %{HTTP_X_FORWARDED_PROTO} ^https$ [or]
RewriteCond %{HTTPS} ^on$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Перенаправление работает но страницы типа http://mydomain.ru/node/3/ перенаправляет на https://mydomain.ru/index.php
Как исправить что бы http://mydomain.ru/node/3/ перенаправляло на https://mydomain.ru/node/3/

Комментарии

Аватар пользователя BOGrus BOGrus 9 октября 2014 в 18:22

Пока смог добиться с помощью этого в .htaccess

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

Перенаправляет. Но только с домена http://mydomain.ru/node/3/ на https://www.mydomain.ru/node/3/
А вот с http://www.mydomain.ru/node/3/ на https://www.mydomain.ru/node/3/ не перенаправляет.
При попытке вставить вот это в .htaccess

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

пишет про циклическую переадресацию

Аватар пользователя BOGrus BOGrus 15 октября 2014 в 12:40

Нет так не работает.
Если вставлять это сразу после

<IfModule mod_rewrite.c>
  RewriteEngine on

то ничего не работает
а если вставить после

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]

то циклическая переадресация

Аватар пользователя Evasby Evasby 11 ноября 2016 в 16:35

Точно такая же проблема. При использовании:

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

или

RewriteCond %{HTTP_HOST} ^ mydomain.ru [NC]
RewriteRule (.*) https://www.mydomain.ru%{REQUEST_URI} [L,R=301,NC]

работают все редиректы кроме одного:
http://www.mydomain.ru -> https://www.mydomain.ru

Использование:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

или

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

ведут к циклической переадресации