web-dev-qa-db-ja.com

CNAMEに基づくApache仮想ホスト

Apacheで仮想ホストを作成してcnameリクエストに応答できますか?例えば:

Example.comの記録は1.2.3.4です
foo.example.comはexample.comのCNAMEです

http.conf内:

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www
</VirtualHost>

<VirtualHost foo.example.com>
 ServerName foo.example.com
 DocumentRoot /foo/www
</VirtualHost>

Apacheは正常に起動し、confをダイジェストしますが、foo.example.comにアクセスすると、/ foo/wwwではなく/ var/wwwにコンテンツが表示されます。私はここで間違った方向に進んでいると思います。

2

次のスニペットは(警告なしで)機能するはずです:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost *:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

名前ベースの仮想ホストサポート のドキュメントを読んで、そもそもなぜ機能しなかったのかを理解してください。

4
joschi

私はそれを次のように機能させました:

NameVirtualHost _default_:80

<VirtualHost _default_:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost _default_:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

これはhttpstartで警告を出しますが:

[warn] NameVirtualHost _default_:80 has no VirtualHosts
0

Foo.example.com仮想ホストにポート番号を追加しようとしましたか?

すなわち:

<VirtualHost foo.example.com:80>
    ServerName foo.example.com
    DocumentRoot /foo/www
</VirtualHost>
0
ryanprayogo