web-dev-qa-db-ja.com

Apacheのディレクトリリストを無効にします。ただし、個々のファイルへのアクセスは許可する必要があります

.htaccessを使用したくない。ディレクトリ属性を変更するにはどうすればよいですか?

<VirtualHost *:80>
   ServerName abc.com
   DocumentRoot /usr/share/uploads
   <Directory " /usr/share/uploads">
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
20
Deepak Singhal

私はインターネットで直接答えを見つけることができませんでした。 Apacheドキュメントでも。最後に、数回の反復でソリューションを見つけることができます。オプションを使用する必要があり、値にはインデックスを含めないでください。

<Directory "/usr/share/uploads">
        Options Includes FollowSymLinks MultiViews
        AllowOverride None
         Order allow,deny
      Allow from all
   </Directory>
24
Deepak

Debian/Ubuntuを使用している場合は、ターミナルに移動して次のように入力します。

Sudo a2dismod autoindex
Sudo service Apache2 restart

Centos/Fedoraを使用している場合は、次のようにします。

mv /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.bkp
/etc/init.d/httpd restart

他のOSやディストリビューションでも同様です...

これにより、これらの空想的な(通常は役に立たない、セキュリティ上の問題がある)ディレクトリ一覧を作成するApacheモジュールが無効になります。また、ボーナスとして、少しパフォーマンスを獲得できます:-)

50
Natxet

@Deepakソリューションは私にとってはうまくいきませんでした。これはしました:

メインのapace設定/ etc/Apache2/httpd.confを追加するだけです:

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

そしてそれはあなたのすべてのドメインとサブドメインで機能します。 .htaccessファイルなし。

4

上記はすべて完了しましたが、ディレクトリ情報はまだ上がっていますか? index.htmlではなくindex.phpを使用する場合は、以下を確認してください。

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>
1
json4rest