web-dev-qa-db-ja.com

キャッチオール*(ワイルドカード)エイリアスを使用しながら、Apache2 serverAliasから特定のドメインを除外する

カスタムドメインをサポートする必要があるWebアプリケーションがあります。その点で、次の名前ベースの仮想サーバーを設定しました。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    RackEnv production
    DocumentRoot /srv/www/example/current/public
    <Directory /srv/www/example/current/public>
             AllowOverride all
             Options -MultiViews FollowSymLinks
    </Directory>
    ErrorLog /srv/www/example/log/error.log
    TransferLog /srv/www/example/log/access.log
</VirtualHost>

*がサーバーエイリアスであることを確認してください。そのサーバー上のすべてのドメインをキャッチします。ただし、このサーバー上にこのリストから除外したい他のサイトがあります。ユーザーがこのサービスでserverAliasとして登録するすべてのドメインを手動で設定するよりも、除外するドメインのリストを用意する方が経済的です...

おそらくこれは最善の方法ではありませんが、他の特定のを許可しながら、任意のドメインをキャッチできるWebアプリをセットアップするための最良の(比較的単純な)方法で、私は助けを求めています。別のアプリにルーティングされるドメイン。

10
Victor S

Apacheは、ドメインが定義されている順序で一致を検索します。私があなたの問題を正しく理解している場合は、すべてのホストをキャッチする前に除外するホストを定義することで解決できます。

<VirtualHost *:80>
    ServerName excluded.example.com
    ServerAlias  something.example.com ...
    ...
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    ...
</VirtualHost>
12
user9517