WordPressでindex.htmlとindex.phpを同時に使う

お久しぶりです。
花舞*あゆ(@ayulilith)です。

手帳にネタをメモしているのですが、消化されずにどんどん溜まっていきます(滝汗)
今回、クライアント案件でタイトルのような事態に遭遇したのでメモ!です。

  • すでに公開済みのサイトにWordPressをインストールする。
  • テスト環境は用意できない。

というクライアントでした。(珍しい)

リニューアル案件でindex.htmlがあると、リダイレクトされてしまいWordPressのトップページは表示できません。

今回のような案件に限らず、リニューアル作業中にindex.htmlは表示させておきたいけれど、index.php(WordPressのトップページ)の表示確認もしたいということはあるかと思います。

リダイレクト処理をしない

まずはリダイレクト処理をしないようにWordPress側の調整をします。

(WordPressをインストールしたディレクトリ)/wp-includes/canonical.php

バックアップを取っておき、このファイルの中の下記コードをコメントアウトします。

$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);

現在の最新版(ver.4.5.3)では392行目にあります。
バージョンによって行数は変わるので検索してみてください。

phpのコメントアウトは文頭に「//」です。

//$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);

参考にしたサイトではこの処理をすれば上手くいくとのことでしたが、なぜか上手くいきませんでした。
理由はいまだグレーのまま…。

ディレクトリへアクセスした場合はindex.htmlを表示する

ホームページにアクセスするとき、

http://ayulilith.com/

このように「/」で終わり、ディレクトリの指定までで終わることがほとんどですよね。
なので、ディレクトリへリクエストされた場合はこれを表示するという指定を追加しました。
htaccessに

DirectoryIndex index.html

このように追加。
ここまで作業をして理想通りの表示になりました!

参考にさせていただいた記事

WordPressでindex.phpとindex.htmlを同時に使う方法!サイトリニューアル中に共存させる
ディレクトリインデックス(DirectoryIndex)

ありがとうございました!

Share This Article

writer:花舞*あゆ