通配符子域将www.domain.com作为子域选取

时间:2014-05-26 22:00:34

标签: apache .htaccess mod-rewrite subdomain

很抱歉,如果我的问题标题可能会产生误导,很难说出来。我只是使用apache设置了通配符子域,然而它运行得很完美,当使用www访问我的主域名时,我得到了404,因为它将www视为子域名。

<VirtualHost *:80>
ServerName wildcard.domain.com
ServerAlias *.domain.com
VirtualDocumentRoot "/var/www/subdomains/%1"
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot "/var/www/html"

<Directory /var/www/html/>
        AllowOverride All
        Allow from all
</Directory>
</VirtualHost>

这是我服务器上的apache配置。当我访问(任何).domain.com时,它将显示/var/www/subdomains/(any)的内容。现在,无论如何,当访问www.domain.com时,它会转到404,因为{www}不存在于/var/www/subdomains/中。我想忽略网址中的www

总结一下

  • domain.com按预期导致我的根
  • www.domain.com会导致找不到404 /

我还想将导致404s的所有子域重定向回root。

1 个答案:

答案 0 :(得分:1)

通过将通配符虚拟主机放置为最后一个虚拟主机来解决。