Apache 通配符子域选择www.domain.com作为子域

Apache 通配符子域选择www.domain.com作为子域,apache,.htaccess,mod-rewrite,subdomain,Apache,.htaccess,Mod Rewrite,Subdomain,对不起,如果我的问题标题可能有误导性,很难说出来。我刚刚用apache设置了通配符子域,它工作得非常完美。然而,当使用www访问我的主域时,我得到了404,因为它将www视为子域 <VirtualHost *:80> ServerName wildcard.domain.com ServerAlias *.domain.com VirtualDocumentRoot "/var/www/subdomains/%1" </VirtualHost> <VirtualH

对不起,如果我的问题标题可能有误导性,很难说出来。我刚刚用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>

ServerName wildcard.domain.com
ServerAlias*.domain.com
VirtualDocumentRoot“/var/www/subdomains/%1”
服务器名www.domain.com
ServerAlias domain.com
DocumentRoot“/var/www/html”
允许超越所有
通融
这在服务器上的apache配置中。当我访问(any).domain.com时,它将显示
/var/www/subdomains/(any)
的内容。然而,现在它可以工作了,当访问
www.domain.com
时,它会转到404,因为
/var/www/subdomains/
中不存在(www)。我想忽略URL中的
www

总而言之

  • domain.com
    按预期指向我的根目录
  • www.domain.com
    导致404找不到
    /

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

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

将第二个虚拟主机放在上面的位置并检查其行为。错过了
。默认情况下,它必须在www.domain.com中选择v.host。编辑器出错,现在开始。好的,切换虚拟主机的位置,它工作了。谢谢