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 ボタンを押せば終了。