がくぞうのアイデアブログ

思いついたアイデア、本からの学びや気づきを公開していきます。

【スポンサーリンク】

WordPressでのパーマリンク設定変更時のトラブル対応について

【スポンサーリンク】

WordPressパーマリンク設定を「デフォルト(例:http://hogehoge.com/?p=123)」から、
「日付と投稿名(例:http://hogehoge.com/2013/04/29/sample-post/)」に変更したところ、
記事ページやカテゴリページや固定ページに遷移しようとすると、
「404 Not Found」エラーが表示されました。
そのときに、トラブル対応方法を残しておきます。

1.事の発端

最近、WordPressワードプレスCMS)で、自分のブログを作りたいと思い、
勉強を始めました。

無料ブログなら、WEBサーバ設定、DBサーバ設定、PHP設定、WordPress設定などを
細かく気にしなくても問題なくブログを書くことに専念できます。
しかし、ブログの外観や設定を自由に変更したり、独自ドメインにてブログ構築することは
できなくはないにしても、制限が多くあります。
そこで、レンタルサーバを借りて、自分でブログ環境を構築したくて、
WordPressを手始めに勉強し始めした。

WordPressの勉強の入口として、「http://dotinstall.com/」の「http://dotinstall.com/lessons/basic_wordpress」から始めました。

そして、WordPress環境を実際に自分のローカル環境に作成しながら勉強したくなり、
http://dotinstall.com/lessons/basic_local_development」を参考に、
環境を構築しました。

2.トラブル発生

ドットインストールの動画を見ながら、WordPressパーマリンク設定を「デフォルト」から、
「日付と投稿名」に変更し、WordPressから表示される指示(表示された文言にて.htaccessファイルを作成せよ)に
従って作業を行い、変更をブログを動かして、確認したところ、「404 Not Found」エラーが発生しました。

最初は、.htaccessエンコードが間違っているかと疑い、いろいろ変えながら試したが解決しませんでした。
ここは、パーマリンク設定をもう一度、「デフォルト」の戻したらどうなるか試したところ、
「404 Not Found」エラーは発生しなくなりました。

以下の「.htaccess」に記述した文字列にヒントがあるかと思い、見ていたら
mod_rewrite」の文字列があったので、これはApacheの設定が問題かもと思い、
調べ始めました。
mod_rewriteとは - はてなキーワード


RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]

3.解決に向けて

調べていく中で、原因として考えられることは、以下の2点でした。
いずれも、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に関する内容でした。

mod_rewriteが有効になっていない
②AllowOverrideディレクティブにて、.htaccessファイルの使用を無効にしている

早速、httpd.confを調べると①は有効になっていましたが、
②が問題となっておりました。
「AllowOverride None」→「AllowOverride All」に変更し、Apacheを再起動し、
ブログのリンクを確認しました。
見事にページ遷移することができました。

4.解決したあとに思うこと

ドットインストールの動画に従って作業をしていると、
いろいろなことについてのさわりを知ることができ、とてもありがたく思います。
しかし、動画に従って作業を行い、とりあえず動いたらいいやで探求をとどめることなく
1つ1つの基本について理解して行かねばと感じました。
土台がしっかりしていないところには、強度がある建物を立てることはできません。
ちょっとしたトラブルが発生したとき、簡単に解決することができるくらいの基本はしっかりと身に付けたく思います。