Как создать виртуальный хост, который работает как с http, так и с https?
Мой конфиг:
Listen 443 http
NameVirtualHost *:80
NameVirtualHost *:443
ServerName *:80
<VirtualHost *:80>
[some non-ssl stuff]
ServerName account.example.com
</VirtualHost>
<VirtualHost *:443>
[some non-ssl stuff(directory, docroot)]
ServerName account.example.com
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
Поэтому я не могу получить доступ к http-версии моего сайта, но ssl-версия работает правильно. Я хочу использовать как vhosts, http (80), так и https (443), чтобы переписать http на https URL через mod_rewrite.
uname -a
Linux 3.4.62-53.42.amzn1.x86_64 GNU/Linux
httpd -v
Server version: Apache/2.2.25 (Unix)
Пожалуйста, помогите понять, что я делаю неправильно.
Ответы
Ответ 1
Итак, теперь моя конфигурация:
Listen 443 http
Listen 80
NameVirtualHost *:80
NameVirtualHost *:443
ServerName *:80
<VirtualHost *:443>
[some non-ssl stuff(directory, docroot)]
ServerName account.example.com
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
<VirtualHost *:80>
SSLEngine off
[other stuff like docroot]
</VirtualHost>
Не уверен в SSLEngine off
, но теперь он работает. Итак, я добавляю правило перезаписи, чтобы переделать с http на https в файле http vhost.htaccess:
#Redirrect from http to https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]