web-dev-qa-db-ja.com

サイトヘッダー全体でコード404を送信する方法

テスト用のWebサイトがあります。このサイトが検索エンジンによってインデックスに登録されることは望ましくありません。

これで、サイトのページのヘッダーに200 OKが返されます。サイト全体がヘッダーでコード404を送信するようにするにはどうすれば機能しますか?

サイトはModX上に構築されています。

2

これは XY問題 です。サイトでのインデックス作成を禁止し、404がインデックス登録されていないことを知っているため、404の「使用」をインデックス登録しないようにします。これは間違った方法です。

Robots.txt、メタタグ、認証の使用など、多くの インデックス作成を防ぐ適切な方法 があります。

12
grg

これがまったくインデックス化されるべきではないテストサイトである場合、404ヘッダーを返すよりも効率的にサイトをインデックス化しないように検索エンジンに指示することができるいくつかの手順があります。

robots.txt

次を含むrobots.txtをサイトのルートに含めます。

User-agent: *
Disallow: /

X-Robots-Tag

すべてのリソースにX-Robots-Tagを追加するには、.htaccessに次を含めます。

Header set X-Robots-Tag "noindex,nofollow"

パスワード保護

Webサイトにアクセスするためにパスワードを要求することもできます。 This はその方法の1つですが、.htaccess部分は次のようになります。

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

IPロック

最後に、このサイトへのすべてのトラフィックをIPアドレスでブロックできます。 Webサイトを表示できるのは、あなたまたは許可されたIPのみであり、検索エンジンは完全にロックアウトされます。

9
Andrew Lott

その場合、サイトのルートに.htpasswd認証が追加されます。次の行を.htaccessファイルに追加してから、空の.htpasswdファイルを作成し、 Htpasswd Generator で正しいuser-password-pair-stringを作成してその中に貼り付けます。簡単なユーザー名とパスワードを覚えて、同僚と共有してください。ボットを締め出すだけなので、それほど難しくする必要はありません。

.htaccess:

AuthType Basic
AuthName "My Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
1
leymannx

以前の回答から、私はそれが悪い習慣であると理解しました。人々に感謝します。

しかし、あなたがまさに私が尋ねていたことを正確に行う必要がある場合は、コードの前にそのようなフレーズをindex.phpに追加する必要があります:

<?php
  header('HTTP/1.1 404 Not Found');
?>

したがって、サイトのすべてのページは404ステータスになりますが、生き続けます

0

サイト全体で404エラーコードを使用することは、特に検索エンジンがそれを見るときにひどい習慣です。なぜなら、それは彼らがあなたが行方不明のページを修正しようとしているのにテストする予定のページが欠落していないという考えを与えるためです200ステータスを404ステータスに変換します。

問題に取り組む方法は、必要なセキュリティのレベルによって異なります。

特定のコンピューターのみがサイトをテストできるようにするには、サーバー構成ファイルを変更して、特定のIPアドレスのみがサイトにアクセスできるようにします。そうすれば、検索エンジンはアクセスできなくなります。

次に安全な方法は、HTML出力を生成するスクリプトまたはファイルに<head></head>の間にこの行を含めることです。

<meta name="ROBOTS" content="NOINDEX">

他の回答で提供されている方法を使用することもできます。 robots.txtの唯一の点は、システムをハッキングしようとするユーザーがそのファイルにアクセスできることです。そのため、robots.txtファイルにコメントを追加しないでください。

0
Mike