Technical
公開日: 2024年10月1日
公開日: 2024年10月1日
【WordPress】 index.phpとindex.htmlを共存させる方法
ワードプレスでは基本的にindex.htmlが優先され、index.phpにアクセスしてもindex.htmlへリダイレクト(index.htmlの中身へ)されてしまいます。
なので現状htmlで作られているサイトをWordPressに作り変える時などは、現状のindex.htmlを稼働させながら裏でindex.phpを表示させてWordPressを構築していく必要がありまして今回index.phpとindex.htmlの共存を実施しました。
canonical.phpの一部をコメントアウトする
まずはWordPressディレクトリ内wp-includes/canonical.php内の以下のコードをコメントアウトします。
$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/?$|', '/', $redirect['path'] );
$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path'] );
WordPressのバージョンによって記載箇所は異なり、私が現在使っているWordPress 6.1.7では516行目と592行目にありました。
index.phpをディレクトリルートにリダイレクトさせない
上記で行ったcanonical.phpの一部をコメントアウトしていても、WordPressでホームページの設定を「最新の投稿」ではなく「固定ページ」に設定している場合は、index.phpにアクセスするとディレクトリルートにリダイレクトされてしまう場合があります。
そのような場合はfunctions.phpに下記のコードを追記することで解消します。
remove_filter('template_redirect', 'redirect_canonical');