ログを確認したところ、検索エンジンが私のWebサイト上の多くの偽のURLにアクセスしていることがわかりました。多くのリンクが変更される前のものである可能性が高く、301リダイレクトを行ったにもかかわらず、一部のリンクが非常に奇妙な方法で変更され、.htaccessファイルで認識されません。
すべてのリクエストはindex.phpによって処理されます。URLが正しくないために応答を作成できない場合は、代わりにカスタムエラーページが表示されます。簡略化されたコードでは、index.phpは次のようになります
try {
$Request = new Request();
$Request->respond();
} catch(NoresponseException $e) {
$Request->presentErrorPage();
}
このページがステータス200を返し、ボットにページが有効でなくても有効であることを通知していることに気づきました。
ボットにそのページへのアクセスを停止するように指示するために、catchステートメントに404を含むヘッダーを追加するだけで十分ですか?
このような:
header("HTTP/1.0 404 Not Found");
テストすると問題ないように見えますが、SEボット(およびおそらくユーザーエージェント)が混乱するのではないかと心配しています。