フォーラムへの返信

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

    (@moriibe)

    お世話になっております。
    この件、解決しましたのでご報告します。

    サーバーがリバースプロキシ構成であり、その対応が必要であることが原因でした。
    以下の一文をwp-config.phpに入れたところ、上記問題は全て解決いたしました。

    $_SERVER[‘HTTP_HOST’] = $_SERVER[‘HTTP_X_FORWARDED_HOST’];

    サーバーに原因があると分かったのは三好様のお陰です。
    大変ありがとうございました。

    今後ともよろしくお願いいたします。

    トピック投稿者 moriibe

    (@moriibe)

    ご返信ありがとうございます。

    フォーラムのルールをよく読まず、勝手にメールをお送りしてしまい申し訳ありませんでした。
    サイトをご覧いただきたい気持ちは強いのですが、やはりURLの公開は出来そうにありませんので、
    ひとまず引き続き、サーバー周りを中心に独自で調べていきたいと思っております。
    原因が分かりましたら、ここに再投稿いたします。

    様々なアドバイスをくださり、大変ありがとうございます。
    また質問をさせていただくかもしれません(おそらくあります…)。
    申し訳ありませんが、その際はよろしくお願いいたします。
    またWordCampなどで三好様にお会いできる機会に、
    直接お礼を言わせていただけると幸甚です。

    トピック投稿者 moriibe

    (@moriibe)

    ご返信ありがとうございます。

    プラグイン「Rewrite Rules Inspector」を追加して確認いたしました。
    Rule中に(ja|en)/?$という表記も確認することができ、
    Rewriteがindex.php?lang=$matches[1]、Sourceがpost_formatとなっております。
    なおこのルールが計300行ほどあり、(ja|en)/?$はその30行目ほどです。
    テスト環境にも同プラグインを入れて本番環境の全レコードとdiff比較しましたが、完全に一致していました。

    大変お手数をおかけするのですが、ご提案を頂戴したとおり、ホームページをご覧いただいても宜しいでしょうか。
    まだ未完成でフォーラムにURLを載せることが社内規則的にできないため、不躾ながら三好様が公開されているメールアドレスに
    URLと状況説明のメールをさせていただきたく存じます。よろしくお願いいたします。
    (進展については、フォーラム中にも記していく所存です)

    なおリライトルートと関係があるかもしれませんので、少し前に別の不具合があったことをご報告させていただきます。
    本番環境への移行処理を終えてトップページを開こうとすると、301エラーとなりページを開けず、
    最終的にはURLの末尾に”index.php”を追加したところ、トップページが開きました。
    トップページ以外のページは問題なく開いたのですが、トップを開くときだけindex.phpの入力が必要という状況でした。
    この問題は、当時は「設定」→「ホームページの表示」で固定ページをトップページにしていたのですが、
    「最新の投稿」を”ホームページの表示”として、front-page.phpをトップページにしたところ解消しています。
    (他サイトで、固定ページではなく最新の投稿とすると直ったと報告があったので、理由は分からないままそうしております)

    この問題のもう一つの解消方法として、wp-includes/template-loader.phpの
    do_action( ‘template_redirect’ );をコメントアウトするという方法をインターネット上で見つけて、
    (例えば: http://web-wizardry.net/wordpress/wordpress-redirect/)
    試したのですが、この方法でも問題は解決しました。ただ、WordPressにログインして、サイトページに戻っても
    上の管理バー(メニューバー)が表示されなくなったため、前者のfront-page.phpでのトップページ表示を採用しております。

    本件に関係があるのか分からないまま書いてしまい、長文となり申し訳ありません。

    トピック投稿者 moriibe

    (@moriibe)

    ご返信、大変ありがとうございます。
    postmetaのmeta_keyが’_locale’であるmeta_valueを確認したところ、
    全てに’ja’もしくは’en_US’が付与されていました。
    レコード数自体もテストサーバーと本番サーバーで違いはありませんでした。

    本件、説明不足で申し訳ありません。
    現状、本番環境においても、URLに/en/を挟めば固定ページやカスタム投稿は
    英語ページに切り替わります。
    例えばshortcodeの代わりに『日英切替ボタンの「英」ボタンを押すとURLに/en/が入る、
    「日」ボタンを押すとURLから/en/を消す』というスイッチをPHPで自作してみたところ、
    固定ページ・カスタム投稿自体の切替は正常に動いていました。

    問題だと認識していますのは、システム(と表現して良いか分かりませんが)側の
    localeの切り替えが上手くいっていないことです。
    例えば英語ページ(URLに/en/が入っているページ)でget_locale()をしても
    ‘ja’が出力されますし、WordPress関数のThe_title()やhome_url()や
    get_bloginfo()といったURLを出力するものがことごとく
    日本語ページ(URLに/en/が入っていないページ)を指してしまいます。

    おそらくBogoに根ざしていない問題で恐縮ですが、
    心当たりありましたらご教示くださりますと幸いです。
    よろしくお願いいたします。

    なお、本番環境が古いバージョンなのは、同じサーバーにて別の業者が別のシステムを
    展開しており、そのシステムがPHP7に非対応であることが原因です。
    こちらとしましても速やかにPHP7に移行したいため、苦々しく思っております。

4件の返信を表示中 - 1 - 4件目 (全4件中)