子域无法正常工作

时间:2011-11-25 15:46:57

标签: apache dns subdomain

我为其中一个域创建了一个子域。在Apache&创建之后在DNS中输入子域不指向它指定的目录,而是指向其主域的目录

主域

<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com *.domain.com
ServerAdmin webmaster@localhost

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 webmaster@localhost

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-available”&amp;中创建条目后在“/ etc / apache2 / sites-enabled”中的虚拟链接,我重新启动了Apache。

2 个答案:

答案 0 :(得分:4)

您的主条目中有一个通配符ServerAlias,您必须调整或删除它:

ServerAlias domain.com *.domain.com

这将抓住一切,包括orders.domain.com。将orders.domain.com的条目移动到配置中较早的位置也可以解决问题。

答案 1 :(得分:0)

这帮助我解决了同样的问题。我意识到我在我的apache配置中使用了一张外卡,一旦我改变它,它仍然没有正常工作。我意识到我在dns条目中也使用了通配符来进行别名。一旦我通过删除通配符更改了我的主域的dns记录,然后为我的子域添加了主域记录,这一切都有效。 所以..我在我的apache配置中... ServerAlias * .domain.com我改为ServerAlias www.domain.com 然后相同的域记录中的别名。这解决了这个问题。