新規にインストールした WordPress で記事を投稿しようとしたところ、「You don't have permission to access /home/wp-admin/post.php on this server.」というエラーが出てしまいました。
これまで散々WordPressを使ってきましたが、はじめて見るコードで対処するのに少し手間取ったので、備忘録を兼ねて解決方法を紹介します。
まず最初に行ったのがパーミッションの確認でした。
エラーコード内に「You don't have permission...」と書いてあるので、当然パーミッションを変更すれば簡単に解決するだろうと考えていました。
しかし、結果はパーミッションを確認・変更しても問題解決には至らず。
根本的な原因はサーバー側にありました。
今回使っていたサーバーは、皆様もご存知のXSERVERだったのですが、エックスサーバー系ではセキュリティ対策として「WAF」が導入されています。
「X2」でも「SIXCORE」でも、あるいはロリポップなど、各社のサーバーにおいて共通ですが、6つある対策(XSS対策、SQL対策、ファイル対策、メール対策、コマンド対策、PHP対策)のうち、「XSS対策」をOFFにすることで、エラーが吐き出されることなく、正常に書き込みできるようになりました。
ちなみに「WAF」は「Web Application Firewall」の頭文字をとった略語。
WordPressやMovableTypeなど、サーバー上にアプリケーションを構築してデータを読み書きするタイプのサイトを不正な攻撃から守るプログラムです。
この機能の一部(XSS対策)が使用できなくなるのはちょっとした痛手ですが、それよりも正常に投稿できないほうが問題ですから、この機能は無効化しておくしかないようですね。
オススメのサーバーです → XSERVER