Können Sie mehrere virtuelle Hosts definieren, während Sie mod_vhost_alias verwenden?

Können Sie mehrere virtuelle Hosts definieren, während Sie mod_vhost_alias verwenden?

Ich verwende den Alias ​​„mod_vhost“ schon seit einiger Zeit, damit ich meine Standardserverkonfiguration für Domänen, die auf meine Hosting-Anbieter verweisen, nicht erfassen kann.

Jetzt hätte ich auch gerne für jede dieser Domänen die Möglichkeit einer Subdomäne (assets.domain.xyz, domain.xyz), aber ich schaffe es beim besten Willen nicht, beide zu aktivieren.

<VirtualHost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot "/www/%1.0.%-1.0/public"
    ServerName %1.0.%-1.0
    ServerAlias %1.0.%-1.0.*.xip.io

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot "/www/%2.0.%-1.0/assets"
    ServerName assets.%2.0.%-1.0
    ServerAlias assets.%2.0.%-1.0.*.xip.io
</VirtualHost>

Was zuerst eintritt, funktioniert, Letzteres wird übersprungen.

Ist das überhaupt möglich? Ich möchte vermeiden, dies jedes Mal duplizieren zu müssen, wenn eine neue Domäne auf mich verweist, und möchte das Schreiben von Skripten vermeiden.

BEARBEITEN Ich versuche, es so hinzubekommen, dass ich zwei allgemeine Zuordnungen wie unten haben kann:

domain.dev        => /www/domain.dev/public
assets.domain.dev => /www/domain/assets

Wenn es einfacher ist, nur /public/assets zu haben, wäre ich damit zufrieden, da hier ohnehin nur statische Inhalte bereitgestellt werden.

Antwort1

Die einzige Möglichkeit, es zum Laufen zu bringen, besteht bei mir darin, einen nicht dynamischen virtuellen Host zur Handhabung der Subdomäne hinzuzufügen.

    <VirtualHost *:80>
        ServerAlias %-2.0.%-1.0
        VirtualDocumentRoot /www/%-2.0.%-1.0/public

        <Directory />
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>

    <VirtualHost *:80>
        ServerAlias assets.*
        VirtualDocumentRoot /www/%-2.0.%-1.0/assets

        <Directory />
            Order deny,allow
            Allow from all
            AllowOverride None
            SetHandler default-handler
            php_flag engine Off
        </Directory>
    </VirtualHost>

Das reicht fürs Erste, da ich es dann wenigstens nicht zu oft wiederholen muss.

verwandte Informationen