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

WordPress付费媒体文件通过wp-json/wp/v2/media暴露,如何隐藏?(新手指南)

解决WordPress媒体文件API公开及付费文件访问限制问题

第一步:限制WP REST API的媒体端点公开访问

先把泄露文件链接的API端点封死,不让未登录用户访问:

插件法(新手首选)

  1. 后台搜索安装「Disable REST API」或「Restrict REST API」插件
  2. 启用后进入插件设置页,找到「允许访问的端点」或「限制未登录用户访问」选项
  3. 取消勾选wp/v2/media相关权限,或者直接设置「仅登录用户可访问所有REST API端点」,保存后未登录用户访问https://[website]/wp-json/wp/v2/media会被拦截

代码法(不想装插件的话)

  1. 进入后台「外观」→「主题文件编辑器」,找到当前主题的functions.php文件
  2. 在文件末尾添加以下代码(务必先备份主题文件):
add_filter('rest_authentication_errors', function($result) {
    if (!is_user_logged_in() && isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/wp-json/wp/v2/media') !== false) {
        return new WP_Error('rest_not_logged_in', '请登录后访问', array('status' => 401));
    }
    return $result;
});
  1. 保存修改,未登录用户访问媒体API端点会返回401未授权错误

第二步:限制付费文件的直接访问权限

光封API还不够,知道文件URL的人仍能直接打开,得给文件本身加权限:

付费内容插件法(最省心)

  1. 后台搜索安装「MemberPress」或「Restrict Content Pro」(有免费基础版)
  2. 按插件向导设置付费会员等级,把需要保护的PDF/Excel文件关联到对应等级
  3. 插件会自动处理权限,只有付费登录用户才能查看/下载文件,直接访问URL会跳转到登录/付费页面

手动目录+HTACCESS限制法(进阶)

  1. 在wp-content/uploads里新建paid-files子文件夹,把所有付费文件移进去
  2. 在paid-files文件夹里创建.htaccess文件,写入以下内容:
AuthType Basic
AuthName "付费内容区域"
AuthUserFile /path/to/your/.htpasswd
Require valid-user
  1. 用在线htpasswd生成工具生成.htpasswd文件,放在网站根目录外的安全位置,把代码里的/path/to/your/.htpasswd改成实际路径
  2. 后续上传付费文件时手动选择这个文件夹,只有输入正确账号密码的用户才能访问

新手注意事项

  • 修改主题代码或服务器文件前,一定要备份网站和数据库,避免出错
  • 设置完成后用未登录账号测试API端点和文件URL,确认无法访问
  • 若用了缓存插件,记得清理缓存确保设置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:05:22