我有两个域johny.com
和alice.com
一个管理它们的网络服务器(apache)。Web 文件位于/var/www/johny.com
和中,/var/www/alice.com
并被配置为两个具有适当ServerName
和DocumentRoot
. 现在,Alice 想要保护她在网络上的一个文件不被任何人看到。她介绍了一个.htaccess
文件,内容如下
<Files "private.txt">
Require all denied
</Files>
并且还在她的虚拟主机的 apache 配置中添加了以下内容
<Directory /var/www/alice.com>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
并且没有人可以访问alice.com/private.txt
. 到目前为止,一切都很好。
现在 John 决定通过更改他的 vhost apache 配置来为 Alice 的 web 提供一个别名
Alias "/alice" "/var/www/alice.com"
任何人都可以在 上看到 Alice 的网页john.com/alice
。但是任何人也可以看到爱丽丝私人文件的内容。
alice.com/private.txt
给出 403 禁止。
john.com/alice/private.txt
显示文件的内容。
这是怎么回事?不通过指令AllowOverride
传播?Alias
我们应该如何解决这个问题?阿帕奇版本是Apache/2.4.38 (Debian)
. 将乱码放入.htaccess
文件中只会在 500 Internal Server Error 上给出 500 Internal Server Error alice.com
,而不是 on john.com/alice
,所以似乎.htaccess
根本不考虑别名。