私のサイトの多くのURLを非フレンドリーからフレンドリーに変更すると、Googleが後でスキャンすることになったのをテストするために使用されていた古いURLに出会いましたが、現在はURLを使用していません。このような非友好的な形式で:
http://example.com/something.php?something=something&
過去に、そのURLは私のサイトの別のURLと一致し、それを修正するために、ステータスコードを変更する必要がありました(そして、URLが実際のWebページを返さないようにしました)。最初はコード410を使用してグーグルに行ったことを示しましたが、他のすべての「きれいな」URLには&
が含まれておらず、httpステータス400は不正なリクエストを表しているため、httpステータス400が優れていると思いました。
これは受け入れられる慣行ですか?または、httpステータス410に変換するだけですか?検索エンジンはこのプラクティスをどう思いますか? (私はここで標準に従うようにしています)
410がなくなった理由
ページが一度存在すると、正しいヘッダーステータスリターンが 410 gone になります。これにより、Googleや他の検索エンジンにインデックスからページを削除するように通知されます。 status 400 bad request の使用は避けるべきです。これは、構文が正しくないためにサーバーがリクエストを理解しなかったことを意味するためです。望ましくないステータスコードを使用すると、エラーログが読み込まれ、実際の問題での障害検出が難しくなります。
404はどうですか?
404または410のステータスを使用することは問題ありませんが、…ページが再び表示されないことがわかっている場合は、410を使用することをお勧めします。 Googleは、404と410の結果を同じように扱っているが、意図しないときに404が発生する可能性があるため、 410の方が早くドロップされる と述べています。
はい、公式に。 4xxステータスは400として解釈される場合があります。他のステータスグループについても同様です。 (たとえば、503サービスを利用できないエラーは、500内部サーバーエラーとして解釈される場合があります。)
RFCは、すべてのステータスをサポートしない可能性のある実装を可能にし、後方互換性を損なうことなく追加のステータスコードを定義できるように、このように書かれています。
はい、あなたは410の代わりに400を使用できます。しかし、あなたはshould現在の状態を説明するために利用可能な最も正確なステータスを使用します。リソースがなくなっており、戻ってこず、他のどこにも(あなたの知る限り)見つからない場合、410が適切なステータスです。おそらく400の前に404を使用します。
この動作のリファレンスは RFC 7231(HTTP 1.1:セマンティクスとコンテンツ)、セクション6 です。 (注: RFC 7231などがRFC 2616に取って代わります 。)
不正なリクエストは、「リソースがないURL」を意味するものではありません。不正なリクエストを意味します。ここではHTTP 400は間違いです。
HTTP 410は、以前アクセスできたリソースがもう存在しないことを示すので、うまく機能します。
他の人が述べたように、あなたの代替は404でしょう。