У нас есть установка 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 в имени хоста.