サイトをWordPressにリニューアルする時にindex.htmlとindex.php両方を表示させる

HTMLで作られたサイトをWordPressでリニューアルしたい場合があります。

WordPressで制作途中、これまでのHTMLサイトを残したまま作業をしたいことがあります。

HTMLファイルを残したままWordPressをインストールすると

例えば、http://example.com/ にアクセスするとHTMLのトップページ(index.html)が表示されます。

WordPressはphpファイルですので http://example.com/index.php にアクセスすればWordPressサイトにアクセスできそうに思いますが、http://example.com/にリダイレクトしてしまいます。

つまり、WordPressのトップページが確認できません。index.htmlを削除すればWordPessサイトが表示されますが、作業が終わるまでは公開したくない場合もあります。このままだと作業になりませんので、index.htmlを残したままindex.phpも表示できるようにします。

wp-includes/canonical.php の一部を書き換えます。

他のサイトでも紹介されていますが、WordPressのバージョンが4.0にバージョンアップして場所が変わったので、改めてこちらで紹介します。

368行目の

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

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

のようにコメントアウトするだけ。

これでhttp://example.com/index.phpにアクセスしても、http://example.com/にリダイレクトされることなく表示されます。

WordPressでのリニューアルが終了したら、あとはindex.htmlを削除すればhttp://example.com/ でWordPressサイトが表示されるよになります。