XML-RPC Problem in WordPress and Blog Clients
Having problems using your blog client with WordPress? I have been getting errors for awhile without being able to post to WordPress using a blogging software.
I was lucky enough to be able to get the following error messages: “XML-RPC server accepts POST requests only.” or “The server returned an unexpected reponse code: 403” or “Wrong content-type”. Not exactly stellar but it allowed me to find a solution to this problem on the Internet.
They narrowed the problem down to a rather technical detail. There is a configuration problem on the host because the host is behaving drastically differently depending on the “Content-Type” of the request.
The problem arises because when a remote editor connects to a WordPress installation, it communicates with HTTP POST requests. In every case the contents of the HTTP messages are XML data, so the “Content-Type: text/xml” header is passed along with the request. But the server seems committed to only returning the expected value if the Content-Type is set to “application/x-www-form-urlencoded”, a typical value for *forms* that are posted, e.g. from a web page.
There’s nothing that can done from the client to alleviate this. The server has to be accommodating of “Content-Type: text/xml” requests. In many cases this restriction is because the hosting service has enabled mod_security Apache module with all the guards up.
The following workaround works for me:
- Create a .htaccess file.
- Add the following:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule> - Save and upload the .htaccess file to the directory with the WordPress files.
You can read the original discussion of this issue at Red Sweater Software forums.
On a particular note: HostingRails customer support staff have been really helpful in diagnosing and solving all of my problems while using their service. Two-thumbs up for these guys! 🙂
Technorati Tags: blog, client, xmlrpc, xml-rpc, problem, bug, wordpress, apache, mod_security, module, server, hosting