
Перенаправление 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» завершена.