Перенаправление HTTP на HTTPS для Apache в Unix/Linux

Перенаправление HTTP на HTTPS для Apache в Unix/Linux

Хотел бы рассказать о том как можно перенаправить любой запрос HTTP на веб-сервере на HTTPS. Это не очень сложно и я ничего нового не расскажу кто это знает, но для новичка — будет полезным. В своей теме «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» я расскажу как это можно сделать.

Для примера, я возьму свой сайт http://linux-notes.org и сделаю перенаправление на https://linux-notes.org

Для начала открываем файл с конфигурацией (для разных Linux ОС файл с конфигурациями может лежать в другом месте):

В CentOS/Fedora/Redhat:

# vim /etc/httpd/conf/httpd.conf

В Debian/Ubuntu:

# vim /etc/apache2/apache2.conf

Убедитесь что модуль mod_rewrite.so загружен (имеется строчка):

[...]
LoadModule rewrite_module modules/mod_rewrite.so
[...]

Если ее нет, то пропишите.

Перенаправление HTTP на HTTPS для Apache в Unix/Linux

Прописываем в свой файл с конфигурацией:

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

PS: Лучше это сделать в файле htaccess (в домашней директории самого сайта)!

Принудительное перенаправление HTTP на HTTPS для Apache в Unix/Linux

Для того, чтобы перенаправить весь веб-трафик на HTTPS (принудительно)вставить следующие строки кода в файле .htaccess в корневой папке вашего сайта.

Важно: Если у вас есть существующий код в .htacess, добавьте эти строки — выше:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www. linux-notes.org/$1 [R,L]

Не забудьте заменить www. linux-notes.org на ваш домен.

Чтобы заставить конкретный домен использовать HTTPS, используйте следующие строки кода в файле .htaccess в корневой папке вашего сайта:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^linux-notes\.org [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.linux-notes.org/$1 [R,L]

Не забудьте заменить linux-notes\.org с вашим доменом. Кроме того, вам нужно заменить www. linux-notes.org с вашим действительным именем домена.

Если вы хотите заставить принудительно использовать SSL на определенную папку, то пропишите:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www. linux-notes.org/folder/$1 [R,L]

После чего, необходимо перезапустить службу с apache:

# service httpd restart

Это для rpm’s ОС, а для deb’s — это выглядит так:

# service apache2 restart

PS: Если прописать в htaccess, то перезапускать web-сервер не нужно.

На этом все, статья «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.