
Вот как я настроил виртуальный хост:
<VirtualHost mysite>
<Directory "/Users/myusername/sitefolder">
Options +FollowSymlinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DocumentRoot "/Users/myusername/sitefolder"
ServerName mysite
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
С этой конфигурацией я могу просматривать свой сайт только с https, но не с http. Когда я отключаю SSLEngine, я не могу просматривать свой сайт с https, но http работает нормально.
Как мне настроить приведенные выше строки так, чтобы я мог видеть свой сайт, используя как http, так и https?
Я использую OSX Lion, но не думаю, что это имеет большое значение.
Спасибо.
решение1
Вам необходимо создать два виртуальных хоста следующим образом:
<VirtualHost mysite:80>
<Directory "/Users/myusername/sitefolder">
Options +FollowSymlinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DocumentRoot "/Users/myusername/sitefolder"
ServerName mysite
</VirtualHost>
<VirtualHost mysite:443>
<Directory "/Users/myusername/sitefolder">
Options +FollowSymlinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DocumentRoot "/Users/myusername/sitefolder"
ServerName mysite
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
Первый — это обычный HTTP
хост, а второй обрабатывает ваш HTTPS
трафик.
решение2
Вы также, вероятно, захотите использовать Include
директиву, чтобы вам не пришлось дублировать конфигурацию между двумя вашими виртуальными хостами -http://httpd.apache.org/docs/2.2/mod/core.html#include.