httpとhttpsの両方で動作する仮想ホストを作成するにはどうすればよいですか?


8

これは私が仮想ホストを設定した方法です:

<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を使用していますが、それほど重要ではないと思います。

ありがとう。

回答:


7

したがって、2つの仮想ホストを作成する必要があります。

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

1つ目は通常のHTTPホストで、2つ目はHTTPSトラフィックを処理します。


共通コードを別のファイルに移動し、#includeしてメンテナンスを容易にする方法はありますか?
Ponkadoodle 2013

2

また、Includeディレクティブを使用して、2つの仮想ホスト間で設定を複製する必要がないようにすることもできます-http : //httpd.apache.org/docs/2.2/mod/core.html#include 。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.