options.phpのみ403エラー
-
paraboraというテーマを利用しています。
独自ドメインを設定する以前は全て問題なく利用できていました。
しかし、独自ドメインの設定後
外観ー>ParaboraSettingー>SAVE CHANGE
を行おうとすると403エラーとなります。
URLは/wp-admin/options.php
となっています。サーバーはロリポップですがWAFの問題でもなく
.htaccessにOptions +FollowSymLinksを追記するようにという記事を発見しましたが
試してもうまく行きませんでした。何か解決策、もしくは、原因の調査方法だけでもわかる方がいらっしゃれば教えていただきたいです。
よろしくお願いいたします。
-
こんにちは、
管理画面のサイドバーに表示されているテーマのプラグインは、インストールしていますか?
インストールしていない状態で、「COLOR SCHEMES」をセットしようとするとエラーになるようですが、この問題のことですか?
nobitaさん
コメントありがとうございます。
Cryout Serious Theme Settingsのことだと思いますが、インストール、有効化済です。
また、COLOR SCHEMEではなく、SAVE CHANGEが出来ないので困っています…
逆にそれ以外で不具合は、今のところ発見していません。맹조さん
コメントありがとうございます。
設定は変更せずに保存、ということでしょうか?
試してみましたが、改善はありませんでした…特定の項目を変更すると、SAVE CHANGE できないということですか?
または、すべての項目で、SAVE CHANGE できないということでしょうか?こちらで、ちょっとやった範囲では、SAVE CHANGEできます。
また、有名テーマ三点共有プラグインみたいなので、そういった大きなバグが有ることもちょっと考えにくい気がします。
オプション設定のformは、options.phpにpost されます。
options.phpに、postされたデータが送られているかどうかを、チェックしたり、どこで弾かれているのかをチェックしてみてはどうでしょうか?
それと、403 Forbidden が出ているということですが、テーマの問題なのか、サーバー設定の問題なのかを切り分けるために、
他のテーマでオプションフィールドの設定が保存されることを確認することも必要ではないかと思います
このテーマの設定は、optionフィールドを使っているので、デフォルトテーマ(デフォルトは、theme_modを使っているので)ではなく
optionフィールドを使っているテーマで比較する必要があります。具体的なテーマ名は、挙げられませんが、、
見つからない場合は、私のテーマで 以下のように設定を変更していただくとオプションページが表示され、optionフィールドを使っているのでやってみてください。
https://ja.wordpress.org/themes/raindrops/
インストールしたら、lib/vars.php line191
/** * Show theme options page * If set false then hide Raindrops theme option and Raindrops options page * * $raindrops_show_theme_option * @since 1.149 * default value change 1.293 */ if ( !isset( $raindrops_show_theme_option ) ) { $raindrops_show_theme_option = false; }
$raindrops_show_theme_option = true
に変更すると管理画面のテーマの項目に「raindrops options」という項目が追加されるので、
何か変更して、同じエラーが出るかどうかを確認してください
エラーとなるようなら、テーマ以外の問題の可能性が高いと判断できると思います。
nobitaさん
詳しくありがとうございます。
特定の項目を変更すると、SAVE CHANGE できないということですか?
または、すべての項目で、SAVE CHANGE できないということでしょうか?⇒すべての項目です。と言うよりは、SAVE CHANGEは一番下にひとつボタンあるのみですので、項目の変更有無に関わらず機能しません…
何か変更して、同じエラーが出るかどうかを確認してください
エラーとなるようなら、テーマ以外の問題の可能性が高いと判断できると思います。⇒こちらエラーは出ませんでしたので、やはりテーマの問題でしょうか…
ふと思い立ち、DBを直接覗いてみたのですが、wpXX_posts のguidに格納されているデータが旧ドメイン(ロリポップのドメイン)でした。
何か関係性がありそうでしょうか?DBを直接覗いてみたのですが、wpXX_posts のguidに格納されているデータが旧ドメイン(ロリポップのドメイン)でした。
何か関係性がありそうでしょうか?ココらへんは、テーマの問題というより、移行関連の基本に関わる部分ですので、移行作業が正常に終了していないと、様々な場面で問題が出ると思います。
このテーマは、parabola_settings というオプションフィールドを使っています。
テーマの、export option で出力されるjsonにも、URLが含まれていると思いますので、そのあたりも旧URLになっているんじゃないですか?
nobitaさん
基本的には動いていたのでそのままにしてしまっておりました。
改めてWordPress Serialized PHP Search Replace Toolを用いてDB上の旧URLを全て新URLに書き換えましたが、PARABOLA SETTINGのSAVE CHANGEのみ403を吐くという現象は改善されませんでした…
そもそも、
wp-admin/options.php
のパーミッションはどうなっていますか? FTPツールや、SSH等で確認できると思います。Toro_Unit (Hiroshi Urabe)さん
コメントありがとうございます。パーミッションは他のファイルと同様に644となっています。
options.phpに、postされたデータが送られているかどうかを、チェックしたり、どこで弾かれているのかをチェックしてみてはどうでしょうか?
と提案しましたが、これの結果はどうでしたか?
wp-admin/options.php line 209-221
// If no settings errors were registered add a general 'updated' message. if ( !count( get_settings_errors() ) ) add_settings_error('general', 'settings_updated', __('Settings saved.'), 'updated'); set_transient('settings_errors', get_settings_errors(), 30); var_dump( get_settings_errors() ); /** * Redirect back to the settings page that was submitted */ $goback = add_query_arg( 'settings-updated', 'true', wp_get_referer() ); echo '<hr />'. $goback; // wp_redirect( $goback ); exit;
と変更して、正常だと、概ね以下のように表示されます。
array(1) { [0]=> array(4) { [“setting”]=> string(7) “general” [“code”]=> string(16) “settings_updated” [“message”]=> string(30) “設定を保存しました。” [“type”]=> string(7) “updated” } }
———————————————————————————–
/wordpress/wp-admin/themes.php?page=parabola-page&settings-updated=trueリダイレクト先が、設定ページに正しくセットされていますか?
変更点var_dump( get_settings_errors() ); echo '<hr />'. $goback;
それと、表示が行われている状態のアドレスバーのURL、念のためテーマオプションページのURLも再確認してください。
フォーム送信元、送信先、リダイレクト先のどれかが、ロリポのパス又は、URLになっていませんか
nobitaさん
詳しくありがとうございます。
options.phpに、postされたデータが送られているかどうかを、チェックしたり、どこで弾かれているのかをチェックしてみてはどうでしょうか?
具体的なやり方がわからずチェック出来ておりませんでした…
ご提案頂いたとおりにoptions.phpを変更して『SAVE CHANGE』をしてみましたが、変わらず403となりました…
403表示ページのURLは
ドメイン/wp-admin/options.phpテーマオプションのURLは
ドメイン/wp-admin/themes.php?page=parabola-pageとなっています。
- トピック「options.phpのみ403エラー」には新たに返信することはできません。