问题环境:

  • cPanel 虚拟主机
  • Apache
  • WordPress 5.5.1
  • PHP 7.4
  • MySQL

当博主尝试使用 python-wordpress-xmlrpc 模块上传图片至WP时,命令行报错 domain.com/xmlprc.php 404 Not Found

但是当使用浏览器访问domain.com/xmlprc.php时却发现并没有404错误,浏览器提示XML-RPC server accepts POST requests only.,意思是只接受POST数据

于是我尝试使用 postman 向xmlrpc提交POST数据,错误重现,报错404。

网上找了下解决方案,大部分解决方式是.htaccess文件放行xmlrpc请求,经确认并不是Apache拦截了xmlrpc请求,不然理论上浏览器直接访问xmlrpc文件也是404

考虑到开放xmlrpc会有一定的风险,会不会是cPanel的某些安全组件拦截了xmlrpc的POST请求呢?

经过一番搜索,终于找到了罪魁祸首,cPanel中的ModSecurity功能,将此功能关闭,即可正常使用xmlrpc功能啦~

image.png

不过开放xmlrpc有一定风险,建议将xmlrpc.php文件路径修改一下。

最后修改:2021 年 02 月 05 日
如果觉得我的文章对你有用,请随意赞赏