禁用apache上的目录列表; 但应允许访问单个文件

Dee*_*pak 18 apache virtualhost virtual-hosts

我不想使用.htaccess.我该如何更改目录属性?

<VirtualHost *:80>
   ServerName abc.com
   DocumentRoot /usr/share/uploads
   <Directory " /usr/share/uploads">
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Nat*_*xet 51

如果您使用的是Debian/Ubuntu,只需转到终端并输入

sudo a2dismod autoindex
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Centos/Fedora,请执行以下操作:

mv /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.bkp
/etc/init.d/httpd restart
Run Code Online (Sandbox Code Playgroud)

同样在其他操作系统或发行版中......

这应该禁用apache模块,使那些花哨(通常无用和安全问题)目录列表.另外,作为奖励,你可以获得一些表现:-)


Dee*_*pak 24

我真的无法在互联网上找到直接答案; 甚至在apache文档上.最后,可以通过几次迭代找到解决方案; 我们需要使用Options,值不应包含Indexes.

<Directory "/usr/share/uploads">
        Options Includes FollowSymLinks MultiViews
        AllowOverride None
         Order allow,deny
      Allow from all
   </Directory>
Run Code Online (Sandbox Code Playgroud)

  • 相关文档是核心功能页面的[选项](http://httpd.apache.org/docs/current/mod/core.html#options)部分,其中描述了"索引"选项的影响.您还可以通过在前面加上 - /+来禁用/启用单个选项,而不会影响以前设置的任何其他选项:`Options -Indexes`. (7认同)

Jev*_*jev 6

@Deepak 解决方案对我不起作用。这个做到了:

在主 apace 配置/etc/apache2/httpd.conf 中添加:

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

它适用于所有域和子域。没有 .htaccess 文件。