- 当サイトは広告を掲載しています -

WordPress | index.phpとindex.htmlを共存させる方法

WordPressでindex.phpとindex.htmlを共存させる方法

こんにちは、サシャ(@sashalog_com)です。

今回は「WordPressのindex.phpとindex.htmlを共存させる方法」についてご紹介します。

WordPressではindex.phpがトップページとして表示されますが、同じ階層にindex.htmlがある場合はリダイレクトされてindex.htmlの内容がトップページとして表示されます。

通常は、index.htmlを削除すればWordPressのindex.phpがトップページとして表示されます。

しかし、htmlで作られているウェブサイトをWordPressに作り変える時など、現状のトップページであるindex.htmlを稼働させながら、index.phpを表示させてWordPressを構築する場合は、index.htmlとindex.phpを共存させる必要があります。

目次

index.phpとindex.htmlを共存させる方法

canonical.phpの一部をコメントアウトする

index.phpとindex.htmlを共存させるには、WordPressディレクトリ内のwp-includes/canonical.phpを編集します。

WordPressのバージョンによって記載箇所は異なりますが、WordPress 5.9.2では514行目と590行目あたりにある以下のコードをコメントアウトします。

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

これでindex.phpとindex.html、どちらにもアクセスできるようになりました。

https://example.com/ → index.htmlの内容が表示される
https://example.com/index.php → WordPressのindex.phpの内容が表示される

表示の優先順位を変更する方法

index.htmlではなくindex.phpの表示を優先させる場合は、.htaccessに以下のコードを追記します。

DirectoryIndex index.php index.html

これによりindex.phpが優先して表示されるようになります。

https://example.com/ → WordPressのindex.phpの内容が表示される
https://example.com/index.html → index.htmlの内容が表示される

index.phpをディレクトリルートにリダイレクトさせない方法

canonical.phpの一部をコメントアウトしていても、WordPressでホームページの設定を「最新の投稿」ではなく「固定ページ」に設定している場合、index.phpにアクセスするとディレクトリルートにリダイレクトされてしまう場合があります。

このような時はfunctions.phpに下記のコードを追記することで、リダイレクトを解消できます。

remove_filter('template_redirect', 'redirect_canonical');

まとめ

今回はWordPressのindex.phpとindex.htmlを共存させる方法についてご紹介しました。

WordPressでindex.phpとindex.htmlを共存させる方法

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次