ど素人から毛を生やす。<延>

同ディレクトリにWPと静的を共存させようとしたらリダイレクトループになった

Web > WordPress 2014年6月16日(最終更新:2年前)

このページは2014.6.16に作成されています。時代の流れとそぐわない可能性があったり、僕が今以上のど素人だった頃の記事だったりするので、新しい記事を探してみるのも良いかもしれません。

どもです。
少し前に購入したWin8を漸くセットアップした餅。です。

本体に金かけてるのに、最初にインストールしたソフトがMetasequoia(無料版)てどうなの僕。
ちゃんと物が作れるようになったら有料版にアップグレードします。

 

毎度のごとくWordPressについて。

今回のやりたいことはタイトルの如く、
WordPressのカテゴリやカスタム投稿と静的ページ(HTML)を共存させる、です。

つまりこういう場合です。

h260616_3

ちなみに、普通はこうなります。
(今回のキャプチャ画像は全部GoogleChromeのものです。)

h260616_1

仮想的にディレクトリを作成するWordPressより、
実際のディレクトリの方が優先されてしまうようで、index,htmlやphpが存在しなくても
ディレクトリのトップ画面が表示されてしまうようです。

この解決法としましては、こちらのサイト様に書かれていました。

WordPress標準装備のindex.php(ルートに置くアレ)を
共存させたいディレクトリに置き、
requireのURLをそのディレクトリからに変更する。

で良いようです。

が、やってみたところ、こんなことに。

h260616_2

まさかのリダイレクトループです。

Cookieを消してもダメだったので、原因はWordPressでしょう。
解決法を探したところ、こちらのサイト様のやり方がヒット。

wp-includes/template-loader.php の12行目(3.9.1の場合)
do_action('template_redirect'); をコメントアウト

でおkでした。
共存の参考サイト様ではリダイレクトループが発生する、なんて注釈は無かったので、
何らかの特殊な状況下で起こることだとは思われますが、一応記録しときます。

 

 

9/24追記

wp-includes/template-loader.phpのコメントアウトだとWPの更新時にいちいち書き直さないといけないので、functions.phpで処理した方が良いかもしれません。

remove_filter('template_redirect', 'redirect_canonical');

でリダイレクトを阻止できます。

 

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった  (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)