私は Rocky Linux 8.4 と Apache 2.4 の標準インストールでテストしています。仮想ホストを設定して動作させており、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/test/期待通りに動作します。
アクセスhttps://test.prot0type.com/test/結果は 403 となり、エラー ログには次の内容が表示されます。
ディレクトリ /var/www/test.prot0type.com/test/ を提供できません: 一致する DirectoryIndex (index.html) が見つかりません。また、サーバー生成のディレクトリ インデックスは Options ディレクティブによって禁止されています。
どの Options ディレクティブがこれを実行しているかを見つけるにはどうすればよいですか? すべての conf ファイルを検索しましたが、見つかりません。