Você pode ter vários vhosts definidos ao usar mod_vhost_alias

Você pode ter vários vhosts definidos ao usar mod_vhost_alias

Estou usando o alias mod_vhost há algum tempo para não me permitir capturar a configuração do servidor padrão para quaisquer domínios que apontem para meus provedores de hospedagem.

Agora, eu também gostaria de ter a capacidade de um subdomínio em cada um deles (assets.domain.xyz, domain.xyz), mas não consigo, de forma alguma, ter ambos ativados.

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

O que for primeiro funciona e o último é ignorado.

Isso é possível? Eu gostaria de evitar duplicar isso toda vez que tiver um novo domínio apontando para mim e tentando evitar escrever scripts.

EDITAR Estou tentando fazer com que possa ter dois mapeamentos genéricos como abaixo:

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

Se for mais simples ter apenas /public/assets então eu ficaria feliz com isso, pois isso só servirá conteúdo estático de qualquer maneira.

Responder1

A única maneira de fazer isso funcionar é adicionando um vhost não dinâmico para lidar com o subdomínio.

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

Isso servirá por enquanto, pelo menos não preciso repetir isso com frequência.

informação relacionada