Jak utworzyć wirtualny host, który działa zarówno z http, jak i https?

8

Oto jak skonfigurowałem wirtualnego hosta:

<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>

Dzięki tej konfiguracji mogę wyświetlać moją witrynę tylko za pomocą https, ale nie http. Kiedy wyłączam SSLEngine, nie mogę wyświetlić mojej witryny przy pomocy https, ale http działa dobrze.

Jak mogę dostosować powyższe wiersze, aby móc wyświetlać moją witrynę przy użyciu zarówno protokołu HTTP, jak i https?

Używam OSX Lion, ale nie sądzę, żeby to miało tak duże znaczenie.

Dzięki.

Baha
źródło

Odpowiedzi:

7

Musisz w ten sposób utworzyć dwa wirtualne hosty:

<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>

Pierwszy to zwykły HTTPhost, a drugi obsługuje HTTPSruch.

Mike Insch
źródło
Czy jest jakiś sposób na przeniesienie wspólnego kodu do innego pliku i #include go, aby ułatwić konserwację?
Ponkadoodle,