1. ホーム
  2. apache

[解決済み] ワイルドカードサブドメインとスタティックサブドメインのバーチャルホスト

2023-07-06 20:51:17

質問

私は奇妙な状況を持っています。 app1.example.com , example.com*.example.com はすべて別のバーチャルホストを使用しています。 これは私が持っているものです (ただし example.com を除外しています)。

<VirtualHost *>
  ServerName app1.example.com
  ServerAlias app1.example.com

  DocumentRoot = /var/www/app1
  # Other configuration for this app here

</VirtualHost>

<VirtualHost *>
  ServerName wildcard.example.com
  ServerAlias *.example.com

  DocumentRoot = /var/www/wildcard
  # other configuration for this app here

</VirtualHost>

問題は、それらが競合することです。 最初にリストされたものが優先されます。ワイルドカードのバーチャルホストと特定のバーチャルホストの両方をホストするにはどうしたらよいでしょうか。

注意: 私は単に DocumentRoot を変更するだけではないので mod_rewrite を使用してDocumentRoot変数を変更しても解決しません。

どのように解決するのですか?

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

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

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

動作するはずです。明示的に一致しない場合は、最初のエントリがデフォルトになります。つまり、app.otherexample.comがそれを指していた場合、app1.example.comがそれに引っかかるということです。