You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下如何允许访问目录内文件/子目录但禁止访问目录本身?

解决Ubuntu 14.04 LAMP服务器禁止目录列表访问的问题

嗨,这个需求在Apache环境下很好实现,咱们有两种常用方案,你可以根据自己的服务器权限情况选择:

方法1:使用.htaccess文件(适合无服务器全局配置权限的情况)

这是最灵活的方式,只需要在目标目录下创建配置文件即可:

  • 登录服务器,进入你的downloads目录(比如路径是/var/www/html/downloads)
  • 创建.htaccess文件,写入以下内容:
    Options -Indexes
    
  • 设置正确的文件权限,确保Apache能读取它:
    sudo chmod 644 .htaccess
    

这样一来,当用户直接访问mySite.com/downloads时,会返回403 Forbidden错误,但完全不影响目录内文件(比如mySite.com/downloads/file.zip)和子目录的正常访问。

方法2:修改Apache全局/虚拟主机配置(适合有服务器管理权限的情况)

如果你能修改Apache的配置文件,这种方式更高效,不需要每个目录都放.htaccess:

  • 打开Apache的虚拟主机配置文件(通常在/etc/apache2/sites-available/目录下,比如你的站点配置是000-default.conf)
  • 找到对应downloads目录的<Directory>块,如果没有就新增:
    <Directory /var/www/html/downloads>
        Options -Indexes
        AllowOverride None
        Require all granted
    </Directory>
    
  • 保存配置后,重启Apache服务使更改生效:
    sudo service apache2 restart
    

补充说明

两种方法的核心都是禁用Apache的目录索引功能(也就是Indexes选项),这样Apache就不会在用户访问目录时自动生成文件列表。如果之后你想恢复目录列表,只需要把-Indexes改成+Indexes即可。

内容的提问来源于stack exchange,提问作者Razgriz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:42:53