LINUX.ORG.RU
ФорумAdmin

Перенаправление http->https в apache 2 не работает


0

0

Включил в апаче mod_ssl, всё работает если обращаться по https://...

Теперь хочу сделать так, чтобы если народ вводил http://..., то его бы автоматом перекидывало на https://..

Виртуальных хостов нет, перенаправлять надо весь document_root.

Пробовал 2 способами:

1) Redirect / https://%{SERVER_NAME} 2) через mod_rewrite

RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule /^(.*) https://%{SERVER_NAME}/$1 [L,R]

В результате когда вводишь http:// выдаёт или 400 или 301 (не помню где какую), а в логах вот такое:

...[info] SSL handshake failed: HTTP spoken on HTTPS port;...

Везде где искал по поводу http->https предлагаются только эти 2 решения в разных вариантах.

Я может не догоняю, но: разве не должен по-идее броузеру отсылаться http-хедер чтобы он пошёл на https вместо http? А так (насколько я понимаю) апач тупо перенаправляет его http-запрос на 80 порт на 443 порт в ssl, результатом чего закономерно становится непонимание mod_ssl`ем того,что ему на вход подают. И ещё: вот эти опции в квадратных скобочках(одна какая-то) по идее должны обеспечить переписывание URL в броузере, чего у меня не проихсодит..

Короче - объясните механизм и посоветуйте что делать? Я вообще то делаю? =)

anonymous

Я бы сделал 2 виртуал хоста: один на 80 порту (http), второй на 443 (https). В первом просто прописыаю:

RewriteEngine on

RewriteRule ^/(.*)$ https://www....ru/$1 [R]

и фсе.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.