目前我有 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 相符。