htmlサイトからワードプレス・サイトへの移行時、しばしば従来のhtmlページとワードプレスで作成した固定ページや投稿ページ、ポートフォリオ・ページを共存させる必要が生じる。そんな際にありがちなのが、404エラー Page not found / 「ページが見つかりません」。このページでは、このエラーを解決する為の方法のひとつを紹介する。
ケーススタディ、会社Aの場合;
この度従来のhtmlサイトをレスポンシブ・ウェブ・デザインのテーマをインストールしてWordpressに移植をはじめた。コンテンツが膨大なので、しばらくの間はHTMLページとワードプレス・ページを共存させていく。
作業の一例は、会社案内。
従来
http://www.hoge.co.jp/about_us/index.html
で会社案内を掲示していたが、これをワードプレスで固定ページを作成して切り替えた。
パーマリンク設定の「共通設定」では「投稿名」に設定を変更し、作成した会社案内の固定ページのパーマリンク欄は「about_us」と設定した。
ところが、次の問題が起こった。
問題1;ワードプレスの固定ページが表示されない
http://www.hoge.co.jp/about_us/
にアクセスすると、固定ページではなく、旧来の index.html が表示される。
問題2;index.html が「ページが見つかりません」となる
[問題1]を解決するために index.html を削除すると
http://www.hoge.co.jp/about_us/
では正しくワードプレスの固定ページが表示されるものの、直接アクセスが多い、
http://www.hoge.co.jp/about_us/index.html
にアクセスすると当然ながら 404エラー Page not found / 「ページが見つかりません」
のエラーとなる。
問題3;全てのhtmlページがエラーになる
index.html から index.php にリダイレクトさせるように記述をした .htaccess ファイルを設置したところ、一見、解決したいように見えた。つまり
http://www.hoge.co.jp/about_us/index.html
へのアクセスで
http://www.hoge.co.jp/about_us/
に設定したくワードプレスの固定ページが表示された。
しかし、about_us ディレクトリには、ワードプレスページの作成が間に合っていないたくさんのhtmlページがあり、これら全てが表示されなくなってしまった。
解決策
問題が発生し、それを解決すると別の問題が発生するという良くあるパターンですが、以下の作業を行うと今までの問題点を解決します。
about_us ディレクトリには、
.htaccess は設置しない
index.htmlは削除する。
次のように記述した index.php を設置する。
記述ここから——
/**
* Front to the WordPress application. This file doesn’t do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(‘WP_USE_THEMES’, true);
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . ‘/../wp-blog-header.php’ );
記述ここまで——
プラグイン Redirection をインストールし、次のように設定する。
インストールの後、プラグイン一覧から Redirection の設定をクリックするか、左側のメニュー一覧から「ツール」、「Redirection」と進み、一番左側、「Redirects」という文字をクリックし、ページの下の方、「Add new redirection」で次のようにする。
Source URL
/about_us/index.html
Target URL
http://www.hoge.co.jp/about_us/
これで Add Redirect ボタンを押せば終了。