使用wordpress发布文章时遇到有的文章发布不了,有的文章就能发布。这时就要看看是不是被放火墙waf拦截了。我是由于最近开通了阿里云的web应用放火墙3.0,导致提交的数据中触发了阿里云waf的拦截规则,进而导致发布文章报错。
打开阿里云web应用放火墙放火墙,查看拦截详情,部分关键信息如下
规则ID 113120
规则名称 ASP命令执行
规则描述 此规则阻止尝试执行ASP类远程命令,这些命令通常由网站恶意后门使用。
会检测如下命令: - eval、execute、unencode、request、server.createobject等
检测在以下选择器上运行: - HTTP request URI的参数值
攻击类型 代码执行
URL www.bluepost.cn/wp-json/wp/v2/posts/806?_locale=user
Post value postarg.content=<! <pre class="wp-block-code"><code>
echo -e "\nINFO: 生成 Let's Encrypt 证书"
#read -p "INFO: 是否签发证书 &#if [ "${yn}" == "y" ] || & echo "I
解决方法
删除这些被拦截的代码再次发布成功,确定是放火墙的问题。
在放火墙中将此类拦截提交为误报。或者将发布者的IP地址加入白名单。
遇到该错误的其他原因 – 所有文章发布都报错
wordpress发布文章报错:发布失败。此响应不是合法的JSON响应。 也有可能是以下几种情况导致的。但对于我来说只有部分文章无法发布,就不会是下属情况。
第一种情况:Wordpress编辑器插件或其它插件的问题
很多都是“新版古腾堡编辑器”的问题,如果真是这个问题,解决方法如下:
直接在模版文件的 fuctions.php 的600多行的样子直接添加代码
//禁用 Gutenberg 编辑器
add_filter('use_block_editor_for_post', '__return_false');
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
第二种情况:Wordpress WP Rest API的问题
如果你在发表文章的时候通过浏览器的F12功能来审查资源,你会发现WP REST API会报错,这个时候可以尝试禁用WP REST API来测试是否正常工作。可以使用插件WP REST API禁用
第三种情况:系统镜像的问题
也有可能是系统镜像里面某个组件和新版本的WordPress不兼容导致的,如果是这样的话,就需要直接换个镜像解决的更快一点。
第四种情况:伪静态的问题
使用伪静态时,需要将“固定链接”改为“朴素”,这样伪静态才有用。
转载请注明:半亩方塘 » wordpress有的文章发布失败。此响应不是合法的JSON响应 – 查看是否被放火墙waf拦截