Apache:將 VirtualHost 動態域和子網域指向不同的資料夾

Apache:將 VirtualHost 動態域和子網域指向不同的資料夾

目前我有 2 個虛擬主機:

<VirtualHost *:80>
 ServerName *.*.comp1.office1.lan
 VirtualDocumentRoot /var/www/%-4/%-5/
 UseCanonicalName Off
 <Directory /var/www/>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>
</VirtualHost>

<VirtualHost *:80>
 ServerName *.comp1.office1.lan
 VirtualDocumentRoot /var/www/%-4/
 UseCanonicalName Off
 <Directory /var/www/>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>
</VirtualHost>

域名如資料夾.site.comp1.office1.lan解正確的是( /var/www/site/folder/)。但在要求時站點.comp1.office1.lan我收到 404 錯誤。

apache 記錄了這一行:

[time...] [error] [client my.ip.there] File does not exist: /var/www/site/_

如果我更改 VirtualHosts 的載入順序(第二個虛擬主機在第一個虛擬主機之前載入)站點.comp1.office1.lan上帝運作正常,但 404 回應的問題在於資料夾.site.comp1.office1.lan

答案1

您通常不會在虛擬主機的 ServerName 項目中使用通配符,通常會將它們放在 ServerAlias 指令中。嘗試例如

ServerName comp1.office.lan
ServerAlias *.*.comp1.office.lan
...

您可能必須配置 ServerName,以便它們全部不同且虛擬主機名稱與 ServerAlias 相符。

相關內容