WordPressでパーマリンク設定を変更したら、下のような404 not foundのエラーが発生した場合の対処法をご説明します。
この現象は、パーマリンク設定で下のような「基本」を選んでいる場合は発生しません。
http://example.com/?p=123
httpd.confにてmod_rewriteが有効になっていないのが原因
自分の場合は、WEBサーバのソフトウェアのApacheの設定ファイル、httpd.conf
の中で、mod_rewrite
が有効になっていないのが原因でした。
httpd.conf
はたいてい下のような場所にあります。
- Mac の場合:/etc/apache2/httpd.conf
- Windows の場合:C:¥xampp¥apache¥conf¥httpd.conf
サーバーでお使いの方は、サーバー管理者に問い合わせてみてください。
httpd.confを開いて編集します。Macの場合の手順で書かせて頂きますが、Windowsの方はメモ帳などのお好きなエディターで開いて頂き、同じように編集すれば大丈夫です。
ターミナルを開き、以下のように実行していきます。
1 |
$ sudo vim /etc/apache2/httpd.conf |
エディターの検索機能で、mod_rewrite
という文字列を検索します。
vimであれば、
1 |
/mod_rewrite |
と入力しエンターを押すと、以下の行が見つかるはずです。
1 |
# LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
この行のコメントアウトを外します。(行頭の#
を削除する)
1 |
LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
ファイルを保存したら、忘れずにApacheを再起動してください。
1 |
$ sudo apachectl restart |
これでパーマリンク設定で「基本」以外を選択しても、正常に画面が表示されるはずです。