Apache-2.2

VirtualDocumentRoot 和 CNAME

  • August 3, 2015

我們有一個使用 VirtualDocumentRoot 的 apache 設置。這是 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>

我們使用的網址是“xyz

$$ domain $$.co.uk”,它可以正常工作並映射到正確的文件夾。我們的客戶將使用他們自己的 URL “a.$$ clientdomain $$.co.uk”並創建一個 CNAME 記錄以映射到我們的記錄。 這不會映射到正確的文件夾。反正有這個工作嗎?

希望這是有道理的。

你有這個設置來聽*.*.*.[clientdomain].co.uk,而不是*.[clientdomain].co.uk

*.*.*.[clientdomain].co.uk不會匹配a.[clientdomain].co.uk,因為主機名中沒有足夠.的 s。

引用自:https://serverfault.com/questions/710542