gpt4 book ai didi

Apache 虚拟主机使用 mod_vhost_alias

转载 作者:行者123 更新时间:2023-12-04 18:25:35 24 4
gpt4 key购买 nike

我正在尝试设置我的 apache 模块以将所有请求动态定向到特定文件夹,然后将名称与同名文件夹匹配。

为此,我在 sites-available 文件夹中的 000-default.conf 文件中设置了以下内容。

UseCanonicalName Off
VirtualDocumentRoot /var/www/example/%2

效果很好。

然后我想设置几个不同的域而不是指向示例文件夹,而是指向其他地方,所以我在 VirtualDocumentRoot 行之前添加了几个:

<VirtualHost *:80>
ServerName sub1.example.com
VirtualDocumentRoot /var/www/sub1.example.com
</VirtualHost>

但是,现在动态指向不再起作用,所有 URL 都被重定向到第一个 -> VirtualDocumentRoot 位置。

有人可以指出我做错了什么吗?

apache2/sites-available/000-default.conf 中的完整代码示例:

<VirtualHost *:80>
ServerName sub1.example.com
VirtualDocumentRoot /var/www/sub1.example.com
</VirtualHost>

<VirtualHost *:80>
ServerName sub2.example.com
VirtualDocumentRoot /var/www/sub2.example.com
</VirtualHost>

<VirtualHost *:80>
ServerName sub3.example.com
VirtualDocumentRoot /var/www/sub3.example.com
</VirtualHost>

UseCanonicalName Off
VirtualDocumentRoot /var/www/example/%2

最佳答案

不要对简单的虚拟主机使用 VirtualDocumentRoot,仅使用 DocumentRoot

VirtualDocumentRoot 定义了 mass-virtualhost 包罗万象,根据定义,您只能拥有一个 mass-virtualhost(否则 apache 怎么知道给定主机名应该匹配哪个 VH)。

编辑:

现在您需要做一些其他更改: - 确保你在 apache 配置中的某处有 NameVirtualHost *:80(除非你使用 Apache 2.4)。 - 将 Mass-Virtualhost 作为第一个 移动,因此它将成为默认 虚拟主机。当请求主机名与任何 ServerName 指令都不匹配时,将使用默认虚拟主机。 (您可以通过使用 -S 选项运行 apache 来检查默认 VH)。

关于Apache 虚拟主机使用 mod_vhost_alias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23053699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com