Установил ssl сертификат и хочу что бы все страницы сайта перенаправлялись с http на https
В .htaccess добавил
RewriteCond %{HTTP_X_FORWARDED_PROTO} ^https$ [or]
RewriteCond %{HTTPS} ^on$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
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/
Комментарии
Пока смог добиться с помощью этого в .htaccess
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
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
пишет про циклическую переадресацию
Должно так работать:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Нет так не работает.
Если вставлять это сразу после
RewriteEngine on
то ничего не работает
а если вставить после
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
то циклическая переадресация
Точно такая же проблема. При использовании:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
или
RewriteRule (.*) https://www.mydomain.ru%{REQUEST_URI} [L,R=301,NC]
работают все редиректы кроме одного:
http://www.mydomain.ru -> https://www.mydomain.ru
Использование:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
или
RewriteCond %{HTTP_HOST} ^www.mydomain\.ru*
RewriteRule ^(.*)$ https://mydomain.ru/$1 [L,R=301]
ведут к циклической переадресации