Linux
Apache VHost 配置優先級?
所以我有2個配置文件。
mysite.conf
<VirtualHost *:80> ServerName www.mysite.com ServerAlias mysite.com *.mysite.com DocumentRoot /var/www/mysite/www ErrorDocument 404 /redirect.php ErrorLog logs/application/mysite.error_log CustomLog logs/application/mysite.access_log Combined </VirtualHost>
影片上傳.conf
<VirtualHost *:80> ServerName upload.mysite.com DocumentRoot /var/www/videouploader/www ErrorLog logs/application/videoupload.error_log CustomLog logs/application/videoupload.access_log Combined </VirtualHost>
看,我們有大約 50 個可能的 something.mysite.com 子域,所有這些子域都做不同的事情,但它們都來自同一個文件根目錄。
我想將 *.mysite.com 保留在那裡,僅僅是因為它更乾淨,然後擁有世界上最長的 serveralias 行,而且它可以防止嘗試bananananan.mysite.com 或其他不起作用的東西。
我已經閱讀了 apache 文件,但對於這個 senario,它並沒有任何內容。有人知道怎麼做嗎?
Apache 從上到下搜尋 vhost 匹配並操作它遇到的第一個匹配。如果您重命名
videoupload.conf
為0videoupload.conf
它,它將被閱讀mysite.conf
,它應該可以正常工作。
我有一個類似的問題。
<VirtualHost>
解決方案是從任何其他指令的標頭中刪除域名。消除:<VirtualHost test.blah.org:443> ServerName test.blah.org
用。。。來代替:
<VirtualHost *:443> ServerName test.blah.org
在標頭中使用域名會導致 apache在指令
ServerAlias static-*.blah.org
下優先匹配該虛擬主機而不是 my。<VirtualHost *:443>