Назад | Перейти на главную страницу

VirtualDocumentRoot и CNAME

У нас есть установка apache, которая использует VirtualDocumentRoot. Это вне файла vhost

<VirtualHost *:80>
    ServerName vsweb005.[domain].local
    ServerAlias *.*.*.vsweb005.[domain].local
    ServerAlias *.*.*.[domain].co.uk
    ServerAlias *.*.*.[clientdomain].co.uk

    UseCanonicalName Off
    VirtualDocumentRoot /var/www/html/client/%3/%2/%1

    SetEnv FX_ENVIRONMENT staging
    SetEnv FX_CORE_PATH /var/www/master
    SetEnv FX_CLIENT_PATH /var/www/html/client

    <Directory /var/www/html/client/*>
           Options -Indexes +FollowSymlinks +Multiviews
           Allowoverride All
           Order allow,deny
           Allow from All

        <IfModule mod_headers.c>
            Header set Access-Control-Allow-Origin "*"
            Header set Access-Control-Allow-Headers "X-Requested-With"
        </IfModule>

        <IfModule mod_rewrite.c>

            RewriteEngine On

            RewriteCond %{HTTP_HOST} ^config\.(.*) [NC]
            RewriteCond %{REQUEST_URI} !component\.json [NC]
            RewriteRule ^(.*)$ /component.json?$1 [QSA,L]

            RewriteCond %{REQUEST_FILENAME} -f
            RewriteRule ^.*$ - [S=51]

            RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
            RewriteCond %{REQUEST_URI} !index\.php [NC]
            RewriteRule ^(.*)$ /index.php?$1 [QSA,L]

        </IfModule>
    </Directory>
</VirtualHost>

Мы используем URL «x.y.z. [домен] .co.uk», который работает правильно и соответствует нужным папкам. Наш клиент будет использовать свой собственный URL «a. [Clientdomain] .co.uk» и создать запись CNAME для сопоставления с нашим.

это не соответствует правильным папкам. есть ли способ, чтобы это работало?

Надеюсь, это имеет смысл.

У вас есть эта настройка, чтобы слушать *.*.*.[clientdomain].co.ukне *.[clientdomain].co.uk.

*.*.*.[clientdomain].co.uk не будет соответствовать a.[clientdomain].co.uk, так как не хватает .s в имени хоста.