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 страницу.
Оставьте свой отзыв