Wie erstelle ich einen virtuellen Host, der sowohl mit http als auch mit https funktioniert?

8

So habe ich einen virtuellen Host eingerichtet:

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

Mit dieser Konfiguration kann ich meine Site nur mit https anzeigen, nicht jedoch mit http. Wenn ich SSLEngine ausschalte, kann ich meine Site nicht mit https anzeigen, aber http funktioniert einwandfrei.

Wie kann ich die obigen Zeilen so anpassen, dass ich meine Website sowohl über http als auch über https sehen kann?

Ich benutze OSX Lion, aber ich denke nicht, dass es so wichtig ist.

Vielen Dank.

Baha
quelle

Antworten:

7

Sie müssen also zwei virtuelle Hosts erstellen:

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

Der erste ist ein regulärer HTTPHost, während der zweite Ihren HTTPSDatenverkehr abwickelt.

Mike Insch
quelle
Gibt es eine Möglichkeit, den gemeinsamen Code in eine andere Datei zu verschieben und # einzuschließen, um die Wartung zu vereinfachen?
Ponkadoodle