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

如何阻止wget为开启Options +Indexes的目录生成index.html文件

如何阻止wget为开启Options +Indexes的目录生成index.html文件

我明白你的困扰——用wget镜像目录树时,服务器开启了目录索引(Options +Indexes),wget会自动把每个目录的动态索引页面存成index.html,而且你用--reject-regex index.html还不管用,这确实头疼。

之所以你的--reject-regex index.html规则无效,核心原因是:wget访问的是目录本身的URL(比如https://example.com/folders/sub/),而不是一个实际存在的index.html文件。服务器动态生成索引页面后,wget会默认把这个响应保存为对应目录下的index.html,但你的规则是匹配请求URL里的内容,目录URL里并没有index.html,所以这个规则根本不会触发。

下面给你两个可行的解决方案:

  • 方案一:事后自动删除生成的index.html(最稳妥)
    这是最直接可靠的方法,在wget命令执行完成后,用find命令批量删除所有自动生成的index.html文件。修改后的命令如下:

    wget -m -e robots=off --no-parent --reject-regex aaa --no-verbose --timestamp https://example.com/folders/ && find ./folders -name "index.html" -type f -delete
    

    这样既完成了目录树的镜像,又能自动清理掉那些不需要的动态生成页面。

  • 方案二:调整wget参数尝试避免保存索引页面(有局限性)
    如果你不想事后删除,可以尝试拆分-m(镜像)参数的组合,去掉可能导致保存索引页面的隐含设置。-m等价于-r -N -l inf --no-remove-listing,其中--no-remove-listing主要针对FTP,HTTP环境下我们可以去掉它,改用手动指定参数:

    wget -r -N -l inf -e robots=off --no-parent --reject-regex 'index.html|aaa' --no-verbose --timestamp https://example.com/folders/
    

    不过这个方法不一定在所有服务器环境下都生效,因为wget在HTTP模式下访问目录URL时,还是可能会把返回的索引页面存为index.html,所以方案一更稳妥。

备注:内容来源于stack exchange,提问作者KevinHJ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 13:19:38