web-dev-qa-db-ja.com

Apache-ディレクトリブラウジングで404が発生する

.htaccessファイルがなく、vhost構成でOptions FollowSymLinks MultiViews Indexesの後にAllowOverride Noneが続くと、ディレクトリリストから404応答が返されます。ディレクトリ一覧に必要な特定のモジュールはありますか?

私のアクティブなモジュールは次のとおりです。

  • authz_Host
  • 空気を抜く
  • dir
  • env
  • 期限切れ
  • ヘッダー
  • パントマイム
  • mod-security
  • ネゴシエーション
  • php5
  • reqtimeout
  • リライト
  • setenvif
  • ssl
  • 一意のID

VHost設定:

<VirtualHost *:443>
    # SSL
    SSLEngine               On
    SSLCertificateKeyFile   /dir/ssl/ssl.key
    SSLCertificateFile      /dir/ssl/ssl.crt
    SSLSessionCacheTimeout  300
</VirtualHost>

<VirtualHost *:80 *:443>
    ServerAdmin     webmaster@localhost
    ServerAlias     domain.tld *.domain.tld
    ServerName      cl.domain.tld

    # Just a few connection resets so that I don't waste my bandwidth on "hackers"
    SecRuleEngine On
    SecRule &REQUEST_HEADERS:User-Agent     "@eq 0"         drop,phase:1
    SecRule REQUEST_HEADERS:User-Agent      "^$"            drop,phase:1

    SecRule REQUEST_LINE                    "://"           drop,phase:1

    SecRule REQUEST_URI                     "^/admin"       drop,phase:1
    SecRule REQUEST_URI                     "^/mail"        drop,phase:1
    SecRule REQUEST_URI                     "^/webmail"     drop,phase:1
    SecRule REQUEST_URI                     \\\\            drop,phase:1

    SecRule REQUEST_METHOD                  !^GET$          chain,drop,phase:1
    SecRule REQUEST_METHOD                  !^HEAD$         chain
    SecRule REQUEST_METHOD                  !^POST$
    <Directory /dir/public_html/>
            Options FollowSymLinks MultiViews Indexes
            Order allow,deny
            allow from all
    </Directory>

    DocumentRoot    /dir/public_html
</VirtualHost>
3
user28412

<Directory>でこれを使用してみてください

AllowOverride All

また、リクエストを行っているディレクトリでディレクトリの参照を無効にする.htaccessファイルがないことを確認します(そしてApacheを再起動します)。

更新:

mod_autoindexモジュールがmod_dirモジュールとともにロードされていることを確認してください。前者がないと、ディレクトリを参照するときにエラーが発生します。これを参照してください: Apache Module mod_autoindex

2
dan