Apache2 配置一个处理特定子域(或目录)的虚拟主机和另一个捕获所有其他子域(或目录)的虚拟主机

Apache2 配置一个处理特定子域(或目录)的虚拟主机和另一个捕获所有其他子域(或目录)的虚拟主机,apache2,subdomain,virtualhost,Apache2,Subdomain,Virtualhost,我想使用自己的DocumentRoot为subdomain.mydomain.tld配置VirtualHost。 另一个VitualHost拥有自己的DocumentRoot,可以捕获所有其他文档 我试过了 <VirtualHost *:80> ServerAlias subdomain.mydomain.tld ... </VirtualHost > <VirtualHost *:80> ServerAlias *.mydomain.tld

我想使用自己的DocumentRoot为subdomain.mydomain.tld配置VirtualHost。 另一个VitualHost拥有自己的DocumentRoot,可以捕获所有其他文档

我试过了

<VirtualHost *:80>
    ServerAlias subdomain.mydomain.tld
...
</VirtualHost >

<VirtualHost *:80>
    ServerAlias *.mydomain.tld mydomain.tld
...
</VirtualHost >

ServerAlias subdomain.mydomain.tld
...
ServerAlias*.mydomain.tld mydomain.tld
...
而且它不能正常工作

还有其他建议吗? 如果没有办法解决这个问题,我想将一个virtulahost映射到mydomain.tld的子文件夹,并让另一个VirtualHost处理其余部分,但不知道如何处理

提前感谢。

如果不指定apache,可能会对应该使用哪个vhost来服务请求感到困惑

尝试按如下所示在ServerName中弹出

<VirtualHost *:80>
    ServerName subdomain.mydomain.tld
...
</VirtualHost >

<VirtualHost *:80>
   ServerName mydomain.tld 
   ServerAlias *.mydomain.tld 
...
</VirtualHost >

ServerName subdomain.mydomain.tld
...
ServerName mydomain.tld
ServerAlias*.mydomain.tld
...

实际上,我和您一样指定了ServerName。您是否出于某种原因遗漏了子域的serveralias?是的,servername和serveralias都有助于apache识别vhost。如果它只有一个名称,则不需要别名。谢谢。。似乎起作用了。旧的缓存R=301重定向可能还有另一个问题。此解决方案至少适用于其他浏览器;)