无法弄清楚如何在Apache上创build子域?

我有mod_vhost_alias启用。 我的GoDaddy DNS A-Record Host ='*'指向我的服务器。

在/ etc / apache2 / sites-available / 000-default中我有

<VirtualHost *:80> UseCanonicalName Off VirtualDocumentRoot /var/www/%0/public_html VirtualScriptAlias /var/www/%0/cgi-bin </VirtualHost> 

但是当我尝试去subdomain.domain.com我得到:

未find

在此服务器上找不到请求的URL /。 一直在这一天工作! 请帮忙! 谢谢!

更新:所以我得到这个工作,通过更改%0%1,因为我的文件夹名称是“子域”,但现在如果我去domain.com而不是subdomain.domain.com我得到一个错误…我怎么能有两全其美?

这里的交易:在我的例子修复C:/ s,并更新你的path。

确保在vHosts部分的顶部有“NameVirtualHost”。

 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "C:/xampp/htdocs/" ServerName u4ik.info ServerAlias www.u4ik.info </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "C:/xampp/url/" ServerName 2.u4ik.us ServerAlias 2.u4ik.us </VirtualHost> 

我觉得为了简单起见,你需要select一个或另一个。 如果你要使用虚拟主机,请按照U4iK_HaZe提供的示例进行操作,如下所示:

 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /yourpath/to/yoursite/ ServerName yourdomain.com ServerAlias www.yourdomain.com </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /yourpath/to/yoursitesubdomain/ ServerName subdomain.yourdomain.com ServerAlias www.subdomain.yourdomain.com </VirtualHost> 

如果你打算使用VirtualDocumentRoot,你可以这样做:

 UseCanonicalName Off VirtualDocumentRoot /yourpath/%0/htdocs 

我想,但是,你知道这一部分。 我不确定是否在服务器上创build了相应的目录。 %0匹配整个域,所以在服务器上,如果你需要调出subdomain1.yourdomain.com,目录path应该是:

 /yourpath/subdomain1.yourdomain.com/htdocs 

对于subdomain2.yourdomain.com:

 /yourpath/subdomain2.yourdomain.com/htdocs 

但是,由于您在模式匹配方面似乎没有多less经验,所以我强烈build议您使用VirtualHost选项并暂时保留VirtualDocumentRoot。