【WordPress】トップページ以外が404エラーで表示されない
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、WordPressでトップページ以外が404エラーで表示されない場合の解決方法を2パターンご紹介しています。
404エラーでページが表示されない……どうすればいいの?
すべてのエラーに当てはまるわけではないですが、該当する方は参考にしていただければと思います。
では、解説していきます。htaccessがない
WordPressは適切な権限を与えると、自動で.htaccessの作成や更新をしてくれます。ただ、権限が適切でない場合はファイルを作成することができないため、.htaccessが吐き出されずに存在しない状態になります。その場合は自身で.htaccessを作成する必要があります。
下記のようなディレクトリ構造だと仮定します。
/var/www/html/sample/wordpress
「wordpress」がサイトのルートディレクトリの場合は「wordpress」ディレクトリ配下に.htaccessを作成します。
/var/www/html/sample/wordpress/.htaccess
後はパーマリンク設定の最下部に.htaccessに記載すべき値が表示されているはずですので、画面の指示に従って.htaccessを更新してください。
パーマリンク設定画面に何も表示されていない場合は下記をコピーしてご利用ください。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
以上で.htaccessの作成は完了です。ページの表示をご確認ください。
htaccessが作成されているがページが表示されない
.htaccessは作成したけど、ページにアクセスすると未だ404エラーが表示される……
そういった場合は、サーバー側で.htaccessの設定が有効になっておらず、使用できない状態の可能性があります。そのため、自身でサーバーの設定ファイルを更新する必要があります。
apacheの設定ファイルを更新します。まずは設定ファイルである「httpd.conf」を探します。
下記のコマンドを実行します。
find / -name httpd.conf
実行結果が表示されます。大体下記の場所にあると思います。
/etc/httpd/conf/httpd.conf
出力されたディレクトリまで移動してエディター(vi、vim等)を起動します。
.htaccessを使用するためには「AllowOverride」を「Noneから「Allに修正する必要があります。
既存の「AllowOverride None」となっている部分をコメントアウトして、直下に「AllowOverride All」を追加します。
修正後は下記のようになります。
<Directory />
# AllowOverride None
AllowOverride All
</Directory>
上記もしくは下記の部分どちらかを修正するだけ問題ないかと思います。
<Directory /var/www/html>
# AllowOverride None
AllowOverride All
</Directory>
追記したら設定ファイルの文法に問題ないかチェックします。
apachectl configtest
「Syntax OK」と表示され、文法に問題がなければ設定ファイルを再読み込みします。
systemctl reload apache
以上で、.htaccessが有効になります。ページの表示をご確認ください。
最後に
普段レンタルサーバーをしているとサーバー側の設定を意識する必要はほとんどないですが、AWSやAzure、GCPのようなクラウドサービスやVPS上でサーバーを構築する場合は設定を一から入れる必要があります。
設定を忘れた場合に本記事のようなエラーが起きやすいと思いますので、そのようなときにご活用いただければ幸いです。
以上、WordPressでトップページ以外が404エラーで表示されない場合の解決方法のご紹介でした!