サポート » 使い方全般 » リバースプロキシ先のWPサイトで起こるエラーを解消したい

  • 表題について質問です。

    [前提]
    現在、リバースプロキシを利用したWordPressサイトを構築しております。
    もともと独自ドメインを契約する予定でしたが、顧客から急遽リバースプロキシのURLを利用したいとの要望があり、設定変更に取り組んでおります。
    なお、私自身はリバースプロキシを利用するのは今回が初めてで、現段階では知識・理解度はあまり深くありません。

    [ 設定した内容 ]
    契約サーバの/wp ディレクトリにWordPressのデータを設置し、管理画面の設定において、WordPressアドレスとサイトアドレスを以下のように設定しております。

    WordPress アドレス => https://●●●●.sakura.ne.jp/wp
    サイトアドレス => https://www.▲▲▲▲/■■■■/◆◆◆◆

    サイトアドレスがリバースプロキシのURLです。記述の通り2階層下のディレクトリで、これをWordpressのトップページとして表示します。

    上記の設定で、ページのnot found などの問題もなく表示されましたが、以下の問題が発生します。

    [問題]
    wordpress標準搭載のブロックエディタを使う投稿タイプにおいて、公開や更新ができなくなる。
    公開や保存ボタンをクリックすると、「更新に失敗しました。 現在オフラインのようです。」と表示され、実行できません。
    下書き保存もできません。
    また、プラグインAll in one SEOを利用しておりますが、投稿編集画面において、以下の文言も表示されるようになります。
    「AIOSEO は WordPress Rest API を使用しており、サイトで無効化した可能性があります。」

    ちなみに、ブロックエディタを利用しない投稿タイプは問題なく保存・更新ができます。

    [試したこと]
    webで解決方法を探っていますと、WordPressアドレスとサイトアドレスのドメインがことなる場合は、rest APIが動作せずブロックエディタが動かないとの記事を見つけ、対策としてfunctions.phpに以下を追加しました。

    # ━━━━管理画面での APIのドメインを変更━━━━━
    add_filter( 'rest_url', 'rest_url_replace' );
    function rest_url_replace($url){
    if (is_admin())$url = str_replace(home_url(), site_url(), $url);
    return $url;
    }
    # ━━━━━━━━━━━━━━━━━━━━━━━━━

    保存or更新クリックで、警告文が以下に変わりました。
    「公開に失敗しました。 返答が正しい JSON レスポンスではありません。」

    ここから先の対処方法がわからず、困っております。
    .htaccessの記述が影響を与える場合がある等の記事もありますが、リバースプロキシURLとの関連性があるかわかりません。
    一応、いかが/wp/と同じディレクトリにある.htaccessの記述です。

    # BEGIN WordPress
    # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
    # 動的に生成され、WordPress フィルターによってのみ修正が可能です。
    # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>


    [その他に試したこと]
    ・すべてのプラグインの無効化 => 効果なし
    ・テーマをTwenty Twenty-Threeに変更 => 効果なし
    ・クラシックエディタに変更 => 問題解消。ただしブロックエディタを使いたいので対策として利用したく無い
    ・パーマリンクを「基本」に変更 => 効果なし
    ・WAFを無効化 => 効果なし


    上記のことから、ブロックエディタに問題がありそうなのですが、解決に至らず困っております。
    お詳しい方、お力をいただけないでしょうか。
    よろしくお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 no23h

    (@no23h)

    自己解決しました。
    原因としてはリバースプロキシにより、ブロックエディタに必要なREST APIへのURL取得ができなくなることから発生している問題でした。

    本件のサイトの場合は、functions.phpに以下のコードを追記することで、不具合を解消できました。

    add_filter(‘rest_url’, function ($url) {
    $url = str_replace(home_url(), site_url() . ‘/index.php’, $url);
    return $url;
    });


1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「リバースプロキシ先のWPサイトで起こるエラーを解消したい」には新たに返信することはできません。