2011-11-25 147 views
3

我爲其中一個域名創建了子域名。在DNS中創建了Apache &輸入後,子域沒有指向其指定的目錄,而不是它指向它的主域的目錄子域名無法正常工作

主域名

<VirtualHost *:80> 
ServerName www.domain.com 
ServerAlias domain.com *.domain.com 
ServerAdmin [email protected] 

DocumentRoot /var/www/domain/ 

<Directory /var/www/domain/> 
    Options FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

ErrorLog /var/log/apache2/domain.error.log 

#Possible Values include: debug, info, notice, warn, error, crit, 
#alert, emerg. 
LogLevel alert 

ServerSignature On 

子域

<VirtualHost *:80> 
ServerName orders.domain.com 
ServerAdmin [email protected] 

DocumentRoot /var/www/domain/cpanel/ 

<Directory /var/www/domain/cpanel/> 
    Options FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

ErrorLog /var/log/apache2/domain.error.log 

#Possible Values include: debug, info, notice, warn, error, crit, 
#alert, emerg. 
LogLevel alert 

ServerSignature On 

在「/ etc/apache2/sites-enabled」中創建條目&「/ etc/apache2/sites-enabled」中的虛擬鏈接之後,我重新啓動了Apache。

回答

4

您的主入口通配符ServerAlias,你將不得不調整或刪除:

ServerAlias domain.com *.domain.com 

那將會趕上一切,包括orders.domain.com。也有可能將您的entry.domain.com條目更早地放入您的配置中,將會解決問題。

+2

+1,我只是補充說,讓它早些時候意味着以站點啓用/ <站點名稱>的字母順序排列它,這就是爲什麼數字通常使用具有這些文件名稱的前綴。 – regilero

+0

工作。非常感謝。 –

0

這幫助我解決了同樣的問題。我意識到我在我的apache配置中使用了通配符,並且一旦我改變了它,它仍然不能正確工作。我意識到我還在我的dns條目中使用了通配符來處理別名。一旦我通過刪除通配符來更改我的主域的DNS記錄,然後爲我的子域添加主域記錄,這一切都奏效了。 所以..我在我的apache配置... ServerAlias * .domain.com,我改爲ServerAlias www.domain.com ,然後相同的域名記錄中的別名。這解決了這個問題。