サポート » 使い方全般 » options.phpのみ403エラー

  • paraboraというテーマを利用しています。
    独自ドメインを設定する以前は全て問題なく利用できていました。
    しかし、独自ドメインの設定後
    外観ー>ParaboraSettingー>SAVE CHANGE
    を行おうとすると403エラーとなります。
    URLは/wp-admin/options.php
    となっています。

    サーバーはロリポップですがWAFの問題でもなく
    .htaccessにOptions +FollowSymLinksを追記するようにという記事を発見しましたが
    試してもうまく行きませんでした。

    何か解決策、もしくは、原因の調査方法だけでもわかる方がいらっしゃれば教えていただきたいです。

    よろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全24件中)
  • こんにちは、

    管理画面のサイドバーに表示されているテーマのプラグインは、インストールしていますか?

    インストールしていない状態で、「COLOR SCHEMES」をセットしようとするとエラーになるようですが、この問題のことですか?

    パーマリンク設定を、再度保存してみましょう。

    トピック投稿者 gobylover

    (@gobylover)

    nobitaさん
    コメントありがとうございます。
    Cryout Serious Theme Settingsのことだと思いますが、インストール、有効化済です。
    また、COLOR SCHEMEではなく、SAVE CHANGEが出来ないので困っています…
    逆にそれ以外で不具合は、今のところ発見していません。

    トピック投稿者 gobylover

    (@gobylover)

    맹조さん
    コメントありがとうございます。
    設定は変更せずに保存、ということでしょうか?
    試してみましたが、改善はありませんでした…

    ブラウザのキャッシュは削除してますか

    トピック投稿者 gobylover

    (@gobylover)

    맹조さん

    はい。
    念のためもう一度キャッシュを削除して試しましたが改善はありませんでした…

    特定の項目を変更すると、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」という項目が追加されるので、

    何か変更して、同じエラーが出るかどうかを確認してください

    エラーとなるようなら、テーマ以外の問題の可能性が高いと判断できると思います。

    トピック投稿者 gobylover

    (@gobylover)

    nobitaさん

    詳しくありがとうございます。

    特定の項目を変更すると、SAVE CHANGE できないということですか?
    または、すべての項目で、SAVE CHANGE できないということでしょうか?

    ⇒すべての項目です。と言うよりは、SAVE CHANGEは一番下にひとつボタンあるのみですので、項目の変更有無に関わらず機能しません…

    何か変更して、同じエラーが出るかどうかを確認してください
    エラーとなるようなら、テーマ以外の問題の可能性が高いと判断できると思います。

    ⇒こちらエラーは出ませんでしたので、やはりテーマの問題でしょうか…

    ふと思い立ち、DBを直接覗いてみたのですが、wpXX_posts のguidに格納されているデータが旧ドメイン(ロリポップのドメイン)でした。
    何か関係性がありそうでしょうか?

    DBを直接覗いてみたのですが、wpXX_posts のguidに格納されているデータが旧ドメイン(ロリポップのドメイン)でした。
    何か関係性がありそうでしょうか?

    ココらへんは、テーマの問題というより、移行関連の基本に関わる部分ですので、移行作業が正常に終了していないと、様々な場面で問題が出ると思います。

    このテーマは、parabola_settings というオプションフィールドを使っています。

    テーマの、export option で出力されるjsonにも、URLが含まれていると思いますので、そのあたりも旧URLになっているんじゃないですか?

    トピック投稿者 gobylover

    (@gobylover)

    nobitaさん

    基本的には動いていたのでそのままにしてしまっておりました。

    改めてWordPress Serialized PHP Search Replace Toolを用いてDB上の旧URLを全て新URLに書き換えましたが、PARABOLA SETTINGのSAVE CHANGEのみ403を吐くという現象は改善されませんでした…

    そもそも、wp-admin/options.php のパーミッションはどうなっていますか? FTPツールや、SSH等で確認できると思います。

    トピック投稿者 gobylover

    (@gobylover)

    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になっていませんか

    トピック投稿者 gobylover

    (@gobylover)

    nobitaさん

    詳しくありがとうございます。

    options.phpに、postされたデータが送られているかどうかを、チェックしたり、どこで弾かれているのかをチェックしてみてはどうでしょうか?

    具体的なやり方がわからずチェック出来ておりませんでした…

    ご提案頂いたとおりにoptions.phpを変更して『SAVE CHANGE』をしてみましたが、変わらず403となりました…

    403表示ページのURLは
    ドメイン/wp-admin/options.php

    テーマオプションのURLは
    ドメイン/wp-admin/themes.php?page=parabola-page

    となっています。

    リダイレクトURLは?

    ドメインは、新ドメインですよね?

    403というのは、エラーで何も表示されないってことですか?

    ダッシュボードのURLに/options.phpは表示されますか?

    http://ワードプレスのURL/wp-admin/options.php

15件の返信を表示中 - 1 - 15件目 (全24件中)
  • トピック「options.phpのみ403エラー」には新たに返信することはできません。