404 Not Foundは存在しないファイルへアクセスした場合に出力されるエラーメッセージです。
このエラーが出る可能性がある原因は次の通りです。サイト管理者の立場で404エラーが発生した場合の対処方法を考えてみます。
- アクセスしたファイルが存在しない
- リダイレクト設定ミス
- 入力間違い
入力したURLが間違っている
入力したURLが間違っている場合、存在しないファイルへアクセスする可能性があります。
原因調査
アクセスしているURLが間違っていないかを、落ち着いて確認しましょう。
手入力でURLを打ち込んでいる場合はスペルミスが発生しやすいです。
解決法
正しいURLを入力しましょう。
アクセスしたファイルが存在しない
正しいURLを入力している場合は、アクセスしたファイルが存在しない可能性があります。
原因調査
FTPやSSHを利用して、アクセスしたファイルがサーバー上へ存在しているかを確認しましょう。
PHPなどのプログラムが動かいない単純なhtmlであれば、URLのファイル名と一致するファイルがサーバーに置かれている必要があります。
また、jpgやpng、css、jsなどの静的ファイルもサーバ上へ存在している必要があります。
解決法
ファイルが存在しなかった場合は、適切な中身のファイルをサーバー上へアップロードしましょう。
リダイレクト設定ミス
リダイレクトが前提となっているサイトの場合は、リダイレクトの設定ミスの可能性があります。
原因調査
WordPressはリダイレクトが前提となっているCMSです。リダイレクトが正常に動作しているかを確認しましょう。
確認ポイントは次の通りです。
.htaccessが存在しているか
.htaccessが存在しているかを確認します。
WordPressの場合は、インストールディレクトリ直下に保存されています。ファイル名間違いはありませんか?
権限が604または644になっていることも確認しておきます。
.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が有効になっているか
正常に中身が記載されている場合は、WEBサーバ自体で.htaccessが無効になっている可能性があります。
httpd.confなどの、httpdのコンフィグを確認しましょう。確認場所は、AllowOverrideです。
対象ディレクトリで、「AllowOverride All」または「AllowOverride FileInfo」となっていれば動作します。
解決法
.htaccessが存在しているか
.htaccessファイルのファイルを作成し、ファイル内にリダイレクト設定を記載しましょう。
.htaccess内にリダイレクト設定がされているか
apacheが書き込みできるように、.htaccessのパーミッションの見直しを行います。その後WordPressのパーマリンク設定を再設定してみましょう。
.htaccessが有効になっているか
apacheのコンフィグの対象ディレクトリを、「AllowOverride All」または「AllowOverride FileInfo」へ変更し反映させます。
404 Not Foundの専用ページを作ろう
WordPressには404.phpというファイルがあり、存在しないファイルへアクセスしたときに表示する画面をカスタイマイズすることが可能です。
ファイルが存在しないことを明確に伝えつつ、おすすめのコンテンツへのリンクや検索まどなどユーザビリティを最大限高める努力をしておくとよいでしょう。
WordPressの404 Not Foundは要注意
WordPressで404 Not Foundが多発する場合は大きなデメリットが存在します。
画面は正常に表示されているように見えても、画像やcss、javascriptなどリンク切れで404が発生すると、サーバへ多大な負荷がかかってしまいます。
詳細はWordPressが遅くなる原因の一つは「404 NotFoud」にありをご覧ください。