使用 mod_vhost_alias 時可以定義多個虛擬主機嗎

使用 mod_vhost_alias 時可以定義多個虛擬主機嗎

我已經使用 mod_vhost 別名有一段時間了,不允許我捕獲指向我的託管提供者的任何網域的預設伺服器設定。

現在我還希望能夠在每個網域(assets.domain.xyz、domain.xyz)上擁有子網域的能力,但我似乎無法同時啟用這兩個網域。

<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>

無論哪一個先起作用,後者都會被跳過。

這可能嗎?我想防止自己每次有一個新網域指向我時都必須重複此操作並試圖避免編寫任何腳本。

編輯 我正在嘗試獲取它,以便我可以擁有兩個通用映射,如下所示:

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

如果只擁有 /public/assets 更簡單,那麼我會很高興,因為無論如何這只會提供靜態內容。

答案1

我讓它工作的唯一方法是添加一個非動態虛擬主機來處理子網域。

    <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>

現在就這樣,因為至少我不必經常重複它。

相關內容