Я новичок в настройке apache, и у меня возникла проблема. На самом деле их пара, но этот единственный остался :)
Я установил поддомен sub_example_com и два виртуальных хоста для него: один для порта 80, второй для 433. Я установил ssl wildecard (например: http://phaseshiftllc.com/articles/2008/10/27/multiple-secure-subdomains-with-a-wildcard-ssl-certificate.html) для использования ssl на поддоменах. Это работает, единственная проблема в том, что у меня есть структура папок, например / var / www / sub_example_com /
Затем я настроил перенаправление с vhost: 80 на vhost: 433 с помощью перенаправления (например, http://wiki.apache.org/httpd/RedirectSSL). Итак, теперь, когда кто-то использует только http, он сразу переходит на https. Что приятно.
Но. Когда кто-то входит в example_com / sub_example_com /, он не перенаправляется. Я пробовал настроить ServerAlias, но это не сработало. Также мне это кажется немного странным.
Как бы вы решили эту проблему? Можно без перезаписи? Можно ли это сделать по определению?
заранее спасибо
PS. Я заменил точки в адресе на тире, потому что я не могу разместить более двух ссылок
Чтобы переписать HTTP на HTTPS, выполните следующие инструкции:
http://wiki.apache.org/httpd/RewriteHTTPToHTTPS
Вики-страница RedirectSSL, которую вы используете, будет перенаправлять только один URI, а не все URI на сайте без SSL.
Итак, что-то вроде этого на виртуальном хосте без SSL:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Вышеупомянутое перенаправит каждый запрос к HTTP-серверу на HTTPS-сервер. Приведенная выше ссылка также покажет вам, что делать, если вы хотите перенаправить только определенные каталоги.
Кстати, директива ServerAlias не для этого. Это для сопоставления альтернативных имен, когда вы используете Name VirtualHosts. Вы должны вернуть его к тому, что у вас было раньше.