coreserver+wordpressで404エラーページのエラー

404エラーページと言うと、存在しないページのURLでアクセスされた時に、「存在しません」を伝えるページのこと。

404エラーページでは、ページの見た目だけじゃなくて、「存在しません」のHTTPステータスコード(=404)も密かに送信されている。 

実は、このサイトの環境(coreserver + wordpress)では、404が送信されるところを200が送信されてしまっている。(200はページが存在して正常に送信されたってこと)

見た目は、404エラーページなだけに、一見気付かないのだけれど、ステータスコード200が送信されると非常に都合が悪い。

ステータスコードは人には判らないだけで、利用しているプログラムは多い。

特に検索エンジンのbot(クローラー)なんかは、このステータスコードでページの有無を判断したりしている。 存在しないページで200を返しているとスパム行為と取られかねない。

;゚Д゚)ヤヴァいよ

なんとか対策しないと・・・

で、wordpressのソースを追っかけてみた
ヘッダーの成形はfunctions.phpファイルにあるstatus_header()関数で行っているようだ。
404エラーの場合最終的に

header("HTTP/1.1 404 Not Found",true,404);

のようなことを実行してるっぽい。
header関数でステータスコードが書き変わらないなら、僕にはお手上げ・・・

良くわからない(´ー`)y─┛~~

 

で、見つけたページ

WordPressでステータスコード404のはずが200になってしまう時の対処法

404.phpの一行目に以下を追加する。(get_header()より上)
<?php header("HTTP/1.1 404 Not Found"); ?>
<?php header("Status: 404 Not Found"); ?>

ふぅ~

なんとか、一件落着。

最初から、検索すりゃ良かったよ!

タグ: , ,

コメントをどうぞ

トラックバックURL

http://f-plus.info/2009/01/coreserver-wordpress%e3%81%a7404%e3%82%a8%e3%83%a9%e3%83%bc%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc/trackback/
※当サイトのコメント/トラックバックは承認制を採用しています。
お送り頂いたコメント/トラックバックが掲載されるまで暫くお待ち下さい。