WordPressの記事編集をしているとエラーが出た。
「返答が正しい JSON レスポンスではありません」が出た時に対処法は?
どこが問題なのか教えてほしい!
こういった疑問にこたえます。
WordPressを立ち上げてすぐに、パーマリンク設定を変更したところ、こういったエラーの症状がみられました。
「下書き保存」ボタンを押しても保存されることはなく、更新もできませんでした。
備忘録として対処法を残しておきます。
「返答が正しい JSON レスポンスではありません」の対処法
「返答が正しい JSON レスポンスではありません」のエラーが出た場合にチェックするポイントはこちらの2つ。
.htaccessの内容確認
まず、WordPressのパーマリンク設定を変更すると、htaccessの内容が変わります。
設定を変更したときに、WordPressが自動的に内容を変更しに行きますが、書き込み権限がない場合、しっぱしするので自分で内容を変更しなければなりません。
パーマリンク設定を変更して保存すると、ページの一番下に.htaccessに記述する内容が表示されます。
これをコピーして.htaccessに貼り付けます。
.htaccessの場所はwp-adminやwp-contentと同じ階層に配置します。
httpd.confの内容確認
.htaccessファイルの内容を変更を変更するだけで問題は解消するかもしれませんが、もし解消しなければhttpd.confの内容を確認しましょう。
httpd.confの場所はCentOS7の場合は/etc/httpd/conf/httpd.conf
にあります。
チェックするポイントは/var/www/htmlディレクトリに対するAllowOverrideの権限有無です。
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
NoneをAllに変更します。
# AllowOverride None
# ↓↓変更↓↓
AllowOverride All
この設定をすることで、先ほど配置した.htaccessの設定を反映させることができます。
「返答が正しい JSON レスポンスではありません」まとめ
「返答が正しい JSON レスポンスではありません」の対処法を解説してきました。
パーマリンク設定を変更したときは、.htaccessの内容が変わるっていうのを注意しておかなければなりません。
httpd.confのAllowOverrideの設定に関しては、レンタルサーバーではデフォルトで有効になっていると思いますので問題ないかと。
ただし、自分でWebサーバを立ててWordPressをいじっている人なら引っかかるポイントかも。
以上、お疲れ様でした。
コメント