Apache 2.4通配符子域虚拟主机

时间:2014-11-01 19:53:13

标签: apache .htaccess dns virtualhost wildcard-subdomain

我的目标是发生以下情况,当用户访问左下方的网站时,它会将他们带到右侧的目录:

www.example.com or example.com  =>  /var/www/example/public_html/

*.example.com                   => /var/www/example/public_html/sites/%1/public_html/

我尝试了以下内容:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example/public_html
</VirtualHost>

<VirtualHost *:80>
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/example/public_html/sites/%1/public_html
</VirtualHost>

主域可以使用或不使用www,但每次我尝试访问任何其他子域时,它都会带我到500并发出500内部服务器错误。当我输入子域名时,URL会更改为如下所示:

{subdomain}.example.com/sites/{subdomain}/public_html/

我在Apache 2.4.7上,是的,我在我的DNS服务器上设置了WildCard。我非常感谢任何答案,认为我已经在墙上摔了两个星期试图让这个工作。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的配置与此非常相似:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example/public_html
</VirtualHost>

<VirtualHost *:80>
  ServerName *.example.com
  ServerAlias *.example.com
  DocumentRoot /var/www/wildcardexample/public_html
</VirtualHost>
你怎么想? 在这种情况下,任何子域都将重定向到同一站点。这是你想要的配置吗?或者您希望每个子域有不同的配置?

答案 1 :(得分:-1)

好的,整个问题来自于通配符目录位于另一个已绑定的目录下。在我在其他地方创建了一个目录后,它开始像预期的那样工作,去图......

希望这可以帮助碰巧遇到这个奇怪错误的其他人...... ^ _ ^