Apache. Redirect с HTTP на HTTPS

Еще одна закладочка на тему редиректа HTTP-запросов. Ситуация стандартная: есть сайт на который нужно заходить только по HTTPS. Соответственно, если кто-то наберет адрес сайта без HTTPS, то должно сработать автоматическое перенаправление. Сервер Ubuntu 12.04, вебсервер Apache 2.2.22.

Все, что нужно было сделать, это добавить в файл httpd.conf следующие строки:

1
2
3
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

И выполнить команду перезагрузки конфигурационных файлов:

$ sudo service apache2 reload

Предварительно можно проверить, что в апаче присутствует и включен модуль *mod_rewrite*.

Доступные модули можно посмотреть командой:

$ ls /etc/apache2/mods-available/

а включенные (активные) модули можно увидеть выполнить команду

$ ls /etc/apache2/mods-enabled/

Должен присутствовать файл rewrite.load.

Если он есть только в каталоге mods-available значит его нужно активировать командой a2enmod:

$ sudo a2enmod rewrite

и перезапустить apache:

sudo service apache2 restart

У меня модуль rewrite уже был активирован, поэтому нужно было всего лишь внести измения в файл httpd.conf, как было описано выше.
Но после перезагрузки конфигурации апача я получил ошибку:

1
2
3
$ sudo service apache2 reload
 * Reloading web server config apache2              
[Fri Oct 18 07:18:35 2013] [warn] NameVirtualHost *:80 has no VirtualHosts

Чтобы избавиться от ошибки нужно в файле ports.conf закоментировать строку NameVirtualHost *:80:

1
2
#NameVirtualHost *:80
Listen 80

Снова перезагружаем конфиги - ошибки нет.

Строку Listen 80 комментировать не нужно, иначе не будет работать перенаправление (redirect). Но это вроде и так понятно :)

Кстати, у меня в файл httpd.conf присутствовала еще вот эта строка:

1
RedirectMatch 404 /\\.(svn|git|hg|bzr|cvs)(/|$)

Эта директива возвращает 404 страницу если кто-то попытается набрать в адресной строке, что-то вроде http://website.name/.svn. Без этой директивы возвращалась бы 403-я ошибка с соответствующей информацией (если конечно перечисленные каталоги присутствуют и закрыты от просмотра). Поэтому рекомендуют возвращать 404 страницу.

Статьи и новости схожей тематики:

Оставьте свой отзыв