WordPress主题内置关注取关API请求被拦截返回403如何解决
WordPress主题自定义API返回403问题解决方案
1. 排查iThemes Security拦截规则
作为最高优先级排查项,该插件默认会拦截非核心目录下的PHP文件直接执行:
- 进入后台「安全」→「设置」页面,找到PHP执行拦截配置项,检查是否封禁了
wp-content/themes/目录下的PHP执行权限 - 打开插件的拦截日志,搜索路径
/wp-content/themes/my_theme/api.php的拦截记录,若存在直接将该路径加入插件白名单 - 检查自定义API访问限制规则,放行该路径对应用户组(登录用户/匿名用户)的访问权限
2. 排查其余安全插件规则
- 查看Loginizer的IP限流日志,确认是否是关注/取关请求频率过高触发了限流规则,可将该API路径加入频率检测白名单
- 检查Wp Scan的实时防护规则,确认是否将该自定义API判定为未知风险请求,按需调整规则放行
- Akismet默认仅拦截评论、提交表单类垃圾请求,基本不会触发API拦截,可临时禁用验证排除可能
- 若无法定位具体拦截插件,可临时批量禁用所有安全插件,发起请求测试,确认是插件拦截后再逐个启用定位冲突源
3. 校验服务端权限配置
- 通过FTP或主机文件管理器检查
api.php文件权限是否为644,所属用户组是否与站点运行用户一致,避免权限不足触发403 - 打开站点根目录的
.htaccess文件,检查是否存在自定义拦截规则限制了该路径访问,可新增以下规则单独放行该文件:
<Files "api.php"> Require all granted </Files>
- 所有配置修改完成后,清除站点缓存、浏览器缓存后重新发起请求测试即可
内容的提问来源于stack exchange,提问作者user15020817
相关产品推荐
相关产品推荐

