2014-01-15 17 views

回答

2

在Apache中,如果沒有其他VirtualHost匹配,則首先列出的VirtualHost是默認值。因此,您可以創建一個沒有內容的虛擬虛擬主機,或僅創建一個登錄頁面(「沒有在此地址配置的站點」或類似地址),並將其作爲您的第一個VirtualHost。 ServerAlias的ServerName是必需的,只要它是第一個。

參見:http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html

+0

這似乎沒有工作。我把VirtualHost作爲第一個虛擬主機,而Apache一直在爲其他服務器提供服務 - 在我的例子中,我是這麼做的(也是第一個使用ServerName的服務器)。 – smares

+1

您可以使用'apache2ctl -S'(ubuntu,debian)或類似的方式列出您的VirtualHost配置,以確保配置符合您的想象。 – mrjink

1

我最常做的是禁止進入的conf.d /安全文件的根目錄下(這是在Ubuntu的標準方式,在其他操作系統,你可以把那個在httpd.conf )

<Directory /> 
    AllowOverride None 
    Order Deny,Allow 
    Deny from all 
</Directory> 

因此,Apache將只允許訪問在VirtualHosts中配置的子目錄。例如,你可以有:

/var/www/example1.domain.com/your_files 
/var/www/example2.domain.com/your_files 

而且具有VirtualHosts像:

ServerName example1.domain.com 

    ErrorLog /var/log/apache2/example1.domain.com_error.log 
    CustomLog /var/log/apache2/example1.domain.com_access.log Combined 

    DocumentRoot /var/www/example1.domain.com/ 

    (...) 

    <Directory /> 
     Options FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

ServerName example2.domain.com 

    ErrorLog /var/log/apache2/example2.domain.com_error.log 
    CustomLog /var/log/apache2/example2.domain.com_access.log Combined 

    DocumentRoot /var/www/example2.domain.com/ 

    (...) 

    <Directory /> 
     Options FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

但是,mrjink指出,這種配置將使用第一個VirtualHost將服務器以某種方式服務器的所有請求(通過ip或未知主機名)。因此,需要額外的Dummy VirtualHost,該名稱應該像「000-dummy-virtualhost」一樣,以確保它是提供這些請求的第一個VirtualHost。

有了這個conf,服務器上的請求或你的IP將不會被服務,但請求example1.domain.com或example2.domain.com將會。

Regards,

+0

雖然這是一個工作示例,但它並不真正回答問題。在此配置中,所有以某種方式到達服務器的請求(通過ip或未知主機名)將由example1.domain.com提供服務,因爲這是第一個列出的VirtualHost。 在另一個說明中,絕不要混合相對和絕對選項。只要使用'Options FollowSymLinks MultiViews',如果這些是您想要的唯一選項。在2.2之前,在它被阻止之前,在2.4之前它實際上是被禁止的。 http://httpd.apache.org/docs/2.2/mod/core.html#options http://httpd.apache.org/docs/2.4/mod/core.html#options – mrjink

+1

明白了,編輯帖子。謝謝! – alvaroreig