web-dev-qa-db-ja.com

PHPウェブサイトに存在しないページに対して410エラーを作成するにはどうすればよいですか?

私のウェブサイトには、WordPressによっていくつかのURLが自動的に追加されました。 Googleでインデックスに登録されました。ここで、これらのURLを「410 Gone」として表示する必要があります。

例えば:

  • /contact/
  • /about-us/

これらのページはウェブサイト上にもうありません。新しいWebサイトはPHPで作成されます。

それらを410エラーページにする方法、またはGoogleが検索インデックスからドロップする方法を教えてください。

2
ranvijay singh

PHPで直接必要なのは、410ヘッダーを出力することだけです。

header( "HTTP/1.1 410 Gone" );

安全のために、exit()を後に呼び出すことをお勧めします。

少数のページがある場合、それぞれに対して1つのファイルを作成するか、すべての削除されたページを410ステータスを送信する1つのPHPファイルにマップするRewriteRuleを使用して.htaccessを変更できます。上に示しました。

技術的には、PHPはまったく必要ありません。htaccessは、次のように設定したステータスベースのルールを送信できるためです。

RewriteRule ^contact/ - [L,R=410]
RewriteRule ^about/ - [L,R=410]

このようなページが多数ある場合、通常、PHPで記述されたカスタムエラーページにロジックをエンコードします。ファイルが見つからないときに呼び出され、410ヘッダーを返すかどうかを判断するためにルックアップを実行できます(必要に応じて、これらのページにアクセスする頻度の統計を収集するなど、他のことを行います)。

2
Itai

Googleがページの404見つからないエラーを繰り返し検出すると、410がなくなったものとして処理し、インデックスからそれらを削除します。 Googleが初めて404を取得したとき、インデックスからページを削除することはありません。一時的なエラーの可能性があるためです。

厳密に言えば、行ったページを410としてマークする必要はありませんが、その場合は、サイトルートの.htaccessファイルに移動して次の行を追加するだけです...

Redirect 410 /foo/bar/demo.php

0