Редирект на HTTPS с изображениями доступными по HTTP

Иногда нужно мигрировать на HTTPS, но при этом оставить изображения доступными по HTTP. Это бывает когда на картинки прописаны абсолютные пути (пример: http://example.com/img/image1.jpg), а все менять очень трудоемко.

Внимание

Когда на странице, которую грузят через HTTPS, указаны ресурсы, доступные по HTTP может возникнуть проблема смешанных протоколов. В этом случае браузер предупредит пользователя, что защита, предоставляемая HTTPS, перестала работать на 100%.

Итак, правим файл .htaccess в корне сайта.
Находим строку:

apacheRewriteEngine on

Если ее нет, добавляем сами.

Сразу после нее вписываем эти строки:

apacheRewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !\.(png|jpg|gif|jpeg|bmp)$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Готово! При доступе по HTTP на любую страницу происходит редирект на ее HTTPS-версию. Однако изображения могут запрашиваться по обеим протоколам.

P.S. Полезная статья на тему миграции на HTTPS

20 ноября 2015