如何通过 index.html 访问未包含在虚拟主机文档根目录中的以前的文件夹。
例如:
<VirtualHost *:443>
DocumentRoot /var/www/banking/personal-banking
ServerName www.zbux.com
ErrorLog /var/log/apache2/www.zbux.com-error.log
CustomLog /var/log/apache2/www.zbux.com-ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/zbux_com.crt
SSLCertificateChainFile /etc/ssl/certs/zbux_com.ca-bundle
SSLCertificateKeyFile /etc/ssl/private/zbux.com.key
</VirtualHost>
其中个人银行文件夹包含index.html,并且该文件需要访问银行文件夹中的文件夹bak。
答案1
根据 Apache 文档 -DocumentRoot 之外的文件:
经常会出现需要允许 Web 访问文件系统中不严格位于 DocumentRoot 下的部分的情况。Apache 提供了几种不同的方法来实现这一点。在 Unix 系统上,符号链接可以将文件系统的其他部分置于 DocumentRoot 下。出于安全原因,Apache 仅在以下情况下才会跟踪符号链接:选项相关目录的设置包括关注符号链接或者符号链接如果所有者匹配。
或者,别名指令会将文件系统的任何部分映射到网络空间。例如,
Alias /docs /var/web
URLhttp://www.example.com/docs/dir/file.html将从/var/web/dir/file.html 提供。
因此,在您的情况下,您可以遵循 Jo-Erlend Schinstad 的建议并创建到“父文件”的符号链接,或者尝试定义 Alias 指令。
例如您可以添加:
Alias /file.html /var/www/banking/file.html
<Directory /var/www/banking>
Require all granted
</Directory>
的请求https://www.zbux.com/file.html
将导致服务器返回文件/var/www/banking/file.html
。
这是mod_alias手动的。