虚拟主机中的 Apache2 别名

虚拟主机中的 Apache2 别名

我在一台服务器上有多个虚拟主机,并计划在一个虚拟主机中设置一些别名。

所以我添加了

别名 /foo/ /path/to/foo/

在 virtualhost 指令中,但它没有效果。对 host1/foo/ 的请求将返回 404。但如果我将其添加到 /etc/apache2/mods-available/alias.conf,它就可以工作。但问题是 host2 也会共享此别名。

有没有办法让别名仅对 host1 起作用?

顺便说一句,我使用apache2ctl -l,没有列出 mod_alias.c,很奇怪。

答案1

这对我有用:

Alias /test /tmp/test

注意路径末尾没有阴影。但我不知道这种效果的原因。

答案2

BTW, I use apache2ctl -l, there's no mod_alias.c listed, weird.

那么这就是你的问题。如果mod_alias没有安装,你的别名指令将失败。安装并设置后,一切都应该按预期工作。

答案3

文件夹 /etc/apache2/mods-available/ 显示可用模块,而不是已安装/启用的模块。这意味着 mod_alias 未在您的机器上启用。

也许有一个像 mods-enabled 这样的文件夹。使用该文件夹创建到文件 /etc/apache2/mods-available/alias.conf 的链接。然后重新加载/重新启动 Web 服务器。

接下来是错误的(见注释): apache2ctl -l 应该显示模块。

运行“httpd -M”查看当前加载的模块 ->httpd 命令参考

也许这个命令不适用于你的操作系统。每个发行版都有点不同。在 gentoo 上使用:“apache2ctl modules”

相关内容