Apache 无法处理 www 文件夹中的多个网站

Apache 无法处理 www 文件夹中的多个网站

我已经在我的家庭网络服务器上配置了 apache;到目前为止,我只在其上运行了一个网站,并且它运行完美:我只需在浏览器中输入我的主机名,我的本地网站就会显示出来。

现在我需要运行多个网站,因此我在/var/www文件夹中创建了多个子目录。我想继续访问它们,输入我的主机名,然后/输入子文件夹的名称。我尝试配置不同的虚拟主机,并向每个虚拟主机添加以下代码行:

ServerName hostname/site1
DocumentRoot /var/www/site1

但每当我输入时,hostname/site1我都会得到 apache 错误页面而不是的主页site1

我是否遗漏了其他配置行?

更新

我删除了新的配置行,并将配置文件恢复为默认状态,因为这应该会自动工作而无需任何特殊配置。hostname/site1但我仍然无法通过键入来访问子文件夹。

答案1

服务器名称指令仅用于包含主机名和端口。指向子目录的斜杠不是主机名的一部分。

在您的示例中,我假设您可能在 处有/var/www/site2以及/var/www/site1。 对于该实现,您可能希望拥有:

ServerName hostname
DocumentRoot /var/www

然后你就可以http://hostname/site1访问http://hostname/site2

要获取子域名,你可能需要查看基于名称的虚拟主机。通常,这涉及诸如 subdomain.hostname 之类的内容,即 test.example.org 可能指向 /var/wwwtest 和 prod.example.org 可能位于 /var/wwwprod。通常,您需要确保子域位于不同的路径中,这样您就无法从另一个站点访问一个站点。

先前的这个问题有一个示例实现:配置 Apache 通过 HTTP + HTTPS 为多个子域提供服务

答案2

虚拟主机仅在设置多个域名(或子域名)时才有用。如果您希望通过同一个地址访问您的网站,则可能需要设置Alias。此外,如果您的 Web 服务器根文件夹指向/var/www,则无需进行任何配置:只需将您的网页放在子目录中,例如,drupal应允许它们被访问your.domain.name/drupal

相关内容