ハード404とソフト404って何?
ずいぶん前に見よう見まねでカスタマイズした404エラーページ。
.htaccessを使えば簡単に導入できると思ってたら、甘かった。
カスタマイズの際に参考にしたサイトでは
ErrorDocument 404 http://kamurogi.com/404.html
こんな感じで絶対パスでの記述だったけど、これだといわゆる「ソフト404」になるみたい。
早速、僕のサイトで存在しない適当なURL(例えばhttp://kamurogi.com/hoge/とか)を調べてみると、HTTPステータスコードで302が返された。
ちなみにHTTPステータスコードは以下のツールを導入すれば簡単に調べることができます。
update ‐
LiveHTTPHeadersなどのブラウザ拡張機能にマルウェアの疑いがあるようです。
※下記、拡張機能とWebサイトへのリンクは削除しています。
- Firefox
LiveHTTPHeaders - IE
ieHTTPHeaders
上記のツールを使えない環境でもView HTTP Request and Response HeaderというサイトでURLを指定するだけで確認できます。
ソフト404とは?
GoogleのHTTP ステータス コード – ウェブマスター ツール ヘルプによると
- 200 (成功)
- 302 (一時的移動)
- 404 (ページが見つかりません)
となっています。
絶対パスの指定でも404エラーのカスタマイズページに移動するので、人間が見た場合(というか見た目)は問題ないように表示されるけど、ロボット(例えば検索エンジン)が404と認識しないとダメ。
で修正の仕方は
ErrorDocument 404 /404.html
のようにドキュメントのパスを指定すればOK
フォルダーを挟みたい場合は、
ErrorDocument 404 /フォルダー名/404.html
とすれば良い。この時、フォルダー名やファイル名の前に「⁄(スラッシュ)」を忘れないように。
これでHTTPステータスコードで404(ハード404)が返さます。