Задача такая, сделать редирект на https://sanplatec.ru с основных дублей, таких как http://sanplatec.ru, http://www.sanplatec.ru и https://www.sanplatec.ru задаю правила в .htaccess : RewriteCond %{HTTP_HOST} ^sanplatec.ru.ru$ [OR] RewriteCond %{HTTP_HOST} ^www.sanplatec.ru.ru$ [NC] RewriteRule (.*) https://sanplatec.ru/$1 [R=301,L] В этом случае остаются и http://www.sanplatec.ru и https://sanplatec.ru Делаю по другому, сначала перенаправляю сайт с www на http://: RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] А затем всё перенаправляю на https:// : RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] Но тогда получается при вводе адреса http://www.sanplatec.ru ошибка 404 и в адресной строке адрес https://sanplatec.ru/https:/www.sanplatec.ru/ Помогите разобраться люди добрые в этом вопросе, киплю уже не первый день, пробовал разные варианты. Тему почти такую уже создавал, но ответов не было.
Пропиши сначала редирект на https и проверь , будет редирект с www на без, как ты хочешь Код (PHP): RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] А вообще это еще зависит от хостинга. Задай вопрос хостеру .
В тех поддержке хостера мне и посоветовали конструкцию типа: RewriteCond %{HTTP_HOST} ^sanplatec.ru.ru$ [OR] RewriteCond %{HTTP_HOST} ^www.sanplatec.ru.ru$ [NC] RewriteRule (.*) https://sanplatec.ru/$1 [R=301,L] Но сработал именно Ваш вариант: RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] Теперь запомню конструкцию. Спасибо OlegK
В твоем случае нижнюю часть лучше так Пжлста. Код (PHP): RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ https://%1/$1 [L,R=301]