web-dev-qa-db-ja.com

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

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

<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の両方を使用して自分のサイトを表示できるように、上記の行を調整するにはどうすればよいですか?

私はOSXLionを使っていますが、それほど重要ではないと思います。

ありがとう。

8
Baha

したがって、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トラフィックを処理します。

7
Mike Insch

また、おそらくIncludeディレクティブを使用して、2つのvhost間で構成を複製する必要がないようにする必要があります--- http://httpd.Apache.org/docs/2.2/mod/core.html #include

2
spinkus