存在しないページがリクエストされるとサーバはステータコード404を返す[1]。
WordPressはテンプレートファイル404.phpを表示する[2]。
ステータスコード404が返されても404.phpを表示しない環境がある。その場合はhtacessに下記のコードを追加すると改善する場合がある[3]
ErrorDocument 404 /index.php?error=404
» Creating an Error 404 Page « WordPress Codex
下記のようなのコードをhtaccessに書いているとステータスコード404に対しても404.phpをせずにルートのindex.phpへリダイレクトする場合がある。
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
存在しないページへのリクエストに対する処理は環境に依存する[3]。
[1] 詳しくはHTTPの基礎を参照。
[2] テーマに404.phpを作成していない場合はブラウザ標準の画面を表示する。
[3] ErrorDocument 404 /404.html
と記述すればルート直下の404.htmlを表示する。
[4] さくらはhtacessにmod_rewriteの記載があっても404.phpを表示するよう。CPIではmod_rewirteの記載がなくかつErrorDocumentの記載をした場合にだけ404.phpを表示する。