WordPress客户端提示412 Precondition Failed的解决办法

2013.07.05更新:最近发现由于ICDSoft对Apache版本进行升级,原来用的指令已经不能用了,要用新的指令,已更新到文章中,详见下文。

WordPress除了可以通过web方式撰写博客外,还可以利用xml-rpc协议通过客户端来进行发布。今天在手机上下载了WordPress for Android客户端,在登录时提示如下错误信息:

HTTP status code: 412 was returned. Precondition Failed.

经过谷歌和百度搜索,发现是由于空间的安全策略限制导致无法连接,有两种解决办法,均是在.htaccess文件中,添加配置信息,对相应控制关闭。方法有两种,在下面列出来了,由于没有深入了解,不清楚哪种会更安全一些,目前我是用第二种方法。

<IfModule mod_security.c>
SecFilterRemove 114
</IfModule>

<Files xmlrpc.php>
SecFilterInheritance Off
</Files>

由于ICDSoft对Apache版本的升级,现在使用的是mod_security2(原先使用的是mod_security),以上指令已不可用,要使用下面这两种:

<IfModule security2_module>
SecRuleRemoveById 114
</IfModule>

或者

<Files xmlrpc.php>
SecRuleInheritance Off
</Files>

对于该问题ICDSoft客服进行了如下答复:

Hello,

There is a mod_security rule on our servers that denies requests to the xmlrpc.php file. Blocking access to the xmlrpc.php file has been implemented as an additional security measure, because xmlrpc.php is a common target for hackers who scan for outdated and flawed versions of WordPress. To deal with this, please edit the .htaccess file in the WordPress directory, and add the following code:

<IfModule security2_module>
SecRuleRemoveById 114
</IfModule>

These lines will disable the mod_security rule in question.

You can use the File Manager in the online Control Panels to edit the file. 

Best regards,
Support