不知道如何在 Apache 上创建子域?

不知道如何在 Apache 上创建子域?

我已启用 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 时,我得到:

未找到

请求的 URL / 未在此服务器上找到。整天都在忙于此事!请帮忙!谢谢!

更新:因此我通过将 %0 更改为 %1 来使其工作,因为我的文件夹名称是“子域”,但是现在如果我转到 domain.com 而不是 subdomain.domain.com,我会收到错误...我怎样才能两全其美?

答案1

解决方案如下:修复我的示例中的 C:/,并更新您的路径。

确保 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>

答案2

我认为为了简单起见,您需要选择其中一个。如果您要使用 Virtualhost,请按照 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

不过,我认为您知道这部分。我不确定您是否在服务器上创建了适当的目录。%0 匹配整个域,因此在服务器上,如果您需要调出 subdomain1.yourdomain.com,目录路径应该是:

/yourpath/subdomain1.yourdomain.com/htdocs

对于 subdomain2.yourdomain.com:

/yourpath/subdomain2.yourdomain.com/htdocs

但是,由于您似乎没有太多模式匹配经验,我强烈建议您使用 VirtualHost 选项,暂时不要使用 VirtualDocumentRoot。

相关内容