我不想使用 .htaccess。我应该如何更改我的目录属性?
<VirtualHost *:80>
ServerName abc.com
DocumentRoot /usr/share/uploads
<Directory " /usr/share/uploads">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我不想使用 .htaccess。我应该如何更改我的目录属性?
<VirtualHost *:80>
ServerName abc.com
DocumentRoot /usr/share/uploads
<Directory " /usr/share/uploads">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
如果您使用的是 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
同样在其他操作系统或发行版中......
这应该禁用使那些花哨(通常无用和安全问题)目录列表的 apache 模块。此外,作为奖励,您可以获得一些表现:-)
我真的无法在互联网上找到直接答案;甚至在 apache 文档上。最后,可以通过几次迭代找到解决方案;我们需要使用选项,并且该值不应包含索引。
<Directory "/usr/share/uploads">
Options Includes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
@Deepak 解决方案对我不起作用。这个做了:
在主 apace 配置/etc/apache2/httpd.conf中添加:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
它适用于所有域和子域。没有 .htaccess 文件。
以上都完成了,但是目录信息还在出现吗?如果您使用 index.php,而不是 index.html,请检查以下内容:
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
在我的 AWS ec2 上,我这样做了,它对我有用。
首先打开 /etc/httpd/conf/httpd.conf 文件。
修改/添加
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
最简单的方法是在该目录中放置一个空的 index.html(或您的 apache 配置为默认提供的任何内容)。这不是一个真正的解决方案,而是一个非常简单的解决方法。浏览该目录的用户只会看到一个空白页。
此外,您可以使用模拟目录列表并仅显示一些特殊文件的脚本(如 index.php)。