ローカルでWordPress環境触ってるとき、トップページ(ルートアドレス)は表示されるのに、サブページ以降(パーマリンクで指定)が表示されなくなった。
エラーを見ると「404 Not Found」「The requested URL /archives/1/ was not found on this server.」とか言われて、パーマリンクをディレクトリとして認識してるっぽい。
原因はRewrite設定
パーマリンクはApacheのRewrite機能を使って実現してるので、Rewrite設定を見直せば解決する。
WordPressでパーマリンクを設定するとルートディレクトリに「.htaccess」が作成される。中身はこんな感じ。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
ここで注目するのはRewriteBaseとRewriteRule。
ローカル環境だと流用作成する場合もあり、ここらへんの設定がWordPressの設定と合っていないことがある。
一般設定の「WordPress アドレス (URL)」と合わせて確認すること。
BitNami環境の場合
BitNami環境の場合は、「conf/httpd-app.conf」ファイルにRewrite設定が記載されているので、そちらを確認すること。
修正したあとは、サーバー再起動もお忘れなく。