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.

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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.