MAMP 7以降でWordPressサイトの下層ページが404 Not Found エラーとなる問題の解決方法



ローカルにWebサーバやPHP、MySQLといった開発環境が手軽に構築できるMAMPは、WordPressのテスト環境やテーマ開発、またWordPressだけでなくPHPスクリプトの学習などでも利用されている方も多いでしょう。

ローカル開発環境として初めてMAMPを利用する場合や、既存のMAMPをバージョンアップして利用する場合など、さまざまなケースがありますが、MAMP 7以降の開発環境でWordPressのパーマリンク設定を変更すると、下層ページが404 Not Found エラーとなる問題が発生します。
ちなみに、SEO的にも推奨されているWordPressのパーマリンクの設定は、投稿名の「/%postname%」やカテゴリー分けして投稿している場合「/%category%/%postname%」とするのがおすすめとなっています。

パーマリンクの設定を変更してテスト開発、テーマ開発、またWordPressの学習を進めていく中、MAMPの環境で404 Not Found エラーで開発や学習が止まってしまうのは悩ましいところです。

ここでは、MAMP 7以降でWordPressサイトの下層ページが404 Not Found エラーとなる問題の解決方法についてご紹介します。

MAMP環境の確認


パーマリンク設定でURLが変更されるということを考えると、MAMPの環境でmod_rewriteが有効であるかどうかを確認する必要があります。
mod_rewriteとは、Apacheで利用されているモジュールで、URLの書き換えやリダイレクト処理を行うものです。
WordPressでは、mod_rewriteモジュールが利用できないと、下層ページ等で404 Not Found エラーとなってしまいます。

MAMP 7以降のApacheでは、デフォルトでmod_rewriteモジュールが有効になっていません。
WordPressのパーマリンク設定に対応するには、MAMPの環境でmod_rewriteモジュールを有効にする必要があります。
そこで、「httpd.conf」というMAMPの設定ファイルを編集していきます。

httpd.confファイルの編集


httpd.confファイルは、WebサーバのApacheの設定ファイルで、httpd.confを編集することで、MAMP内のApacheの動作をカスタマイズすることができます。

httpd.confファイルは、MAMP のインストール先にある「/Applications/MAMP/conf/apache/httpd.conf」にあります。

mod_rewriteモジュールの有効化の設定をするMAMPのhttpd.confファイルの場所



httpd.confファイルをコードエディタ(またはテキストエディタ)で開きます。
「LoadModule rewrite_module modules/mod_rewrite.so」の記述部分がコメントされているので、先頭の「#」を削除してコメントを外します。

変更前

# LoadModule rewrite_module modules/mod_rewrite.so


変更後

LoadModule rewrite_module modules/mod_rewrite.so
コメントされている記述のコメントを解除してmod_rewriteモジュールを有効にする



コメントを解除しましたら、ファイルを保存してMAMPを再起動します。
これで、mod_rewriteモジュールがMAMP環境で利用でき、WordPressのパーマリンク変更時のNot Found問題が解決します。

余談


現在、多くのレンタルサーバではWordPressに対応しており、mod_rewriteモジュールも利用できる状態でありますが、共有サーバではなくVPSといった管理者権限を持って運用する専用サーバをお使いになる場合、実際にWordPressサイトを公開する際、ご自身で「.htaccess」というファイルに、Apacheサーバのmod_rewriteモジュールを有効にする処理を記述する必要もあります。

URLの書き換えやリダイレクト処理など、mod_rewriteモジュールがURLに関わってくるものだと知っておくと、もしそのようなことに遭遇しても解決することができるでしょう。