我正在使用 Rocky Linux 8.4 和 Apache 2.4 的 vanilla 安装进行测试。我已配置并运行虚拟主机,并且还通过 Certbot 配置了 Lets Encrypt 证书,这也很好用。
我想允许在特定文件夹上列出目录,因此启用了选项索引,这在通过 HTTP 时按预期工作,但通过 HTTPS 时我收到 403 Forbidden。Certbot 脚本插入了重写规则,但我不认为这是问题所在,我尝试禁用它,以便我可以通过 HTTP 进行测试,这并没有什么区别,但在这里包括它以防它确实相关。
我的虚拟主机配置如下:
<VirtualHost *:80>
ServerName test.prot0type.com
ServerAlias test.prot0type.com
DocumentRoot /var/www/test.prot0type.com
<Directory /var/www/test.prot0type.com/test>
Options +Indexes
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =test.prot0type.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName test.prot0type.com
ServerAlias test.prot0type.com
DocumentRoot /var/www/test.prot0type.com
<Directory /var/www/test.prot0type.com/test>
Options +Indexes
</Directory>
</VirtualHost>
访问http://test.prot0type.com/测试/按预期工作。
访问https://test.prot0type.com/测试/导致 403 并在错误日志中我得到:
无法提供目录 /var/www/test.prot0type.com/test/:未找到匹配的 DirectoryIndex (index.html),并且 Options 指令禁止服务器生成的目录索引
我如何找到哪个选项指令正在执行此操作?我搜索了所有 conf 文件,但找不到它。