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

使用htpasswd实现PDF下载密码验证(Apache与WordPress环境)

解决SiteGround主机上.htaccess保护PDF文件无效的问题

核心问题排查与修复步骤

1. 修复.htpasswd的密码格式

你当前的.htpasswd里是明文密码,Apache默认不识别明文密码,必须使用加密后的密码字符串。生成加密密码的方法:

  • 通过SSH连接SiteGround主机,执行命令:
    htpasswd -n admin
    
    输入密码后,复制输出的admin:$apr1$xxxxxx$xxxxxx格式内容替换到.htpasswd文件中。

2. 调整.htaccess规则顺序

原配置中Deny from all会优先阻断访问,导致身份验证流程未触发,修改为以下针对PDF文件的精准验证配置:

<FilesMatch "\.pdf$">
  AuthName "Admins Only"
  AuthType Basic
  AuthUserFile /home/user/server/wp-content/ninja-upload/11/.htpasswd
  Require valid-user
</FilesMatch>

3. 排除SiteGround缓存影响

SiteGround的SuperCacher可能缓存PDF文件,导致访问绕过.htaccess验证:

  • 登录SiteGround后台,打开SuperCacher工具
  • 在Exclude URLs中添加/wp-content/ninja-upload/11/*.pdf到排除列表
  • 清空当前站点缓存

4. 确认文件权限与模块状态

  • 确保.htpasswd文件权限设置为644,保证Apache能正常读取
  • 创建phpinfo文件上传到站点根目录,访问后搜索mod_auth_basic,确认该模块处于启用状态(SiteGround默认已开启,若未启用可联系客服处理)

5. 排查WordPress根目录规则干扰

若根目录.htaccess有重写规则,可在子目录.htaccess开头临时添加RewriteEngine Off测试,确认是否为重写规则导致验证失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:22:35