web-dev-qa-db-ja.com

301は404ページにリダイレクトするか、ステータスコードを404に設定してページにとどまりますか?

クエリ文字列値が見つかり、正しく設定されている場合、管理者のみがこれらのページにアクセスしてアクセスできるページがウェブサイトにいくつかあります。例えば:

http://www.mydomain.com/show-daily-statistics?key=abc


上記のリンクにはページのコンテンツが表示されますが、以下のようなその他のものには表示されません。

http://www.mydomain.com/show-daily-statistics


検索エンジンや管理者以外のユーザーがこれらの非表示ページに何らかの理由でアクセスした場合、どうすればよいかを考えていました。

もちろん、ページのステータスコードを404に変更するか、301を次のURLにリダイレクトできます。

http://www.mydomain.com/404-error


GoogleとSEOに関して最適なソリューションは何ですか?

9
WPRookie82

正しいコードは401 Not Authorizedです

HTTP仕様に従って

10.4.2 401不正

要求にはユーザー認証が必要です。応答には、要求されたリソースに適用可能なチャレンジを含むWWW-Authenticateヘッダーフィールド(セクション14.47)を含める必要があります。クライアントは、適切なAuthorizationヘッダーフィールドを使用してリクエストを繰り返すことができます(セクション14.8)。要求にすでに認証資格情報が含まれていた場合、401応答は、それらの資格情報の認証が拒否されたことを示します。 401応答に以前の応答と同じチャレンジが含まれており、ユーザーエージェントがすでに少なくとも1回認証を試みた場合、ユーザーは応答で指定されたエンティティを提示する必要があります。 HTTPアクセス認証については、「HTTP認証:基本およびダイジェストアクセス認証」[43]で説明されています。

または代わりに

10.4.4 403禁止

サーバーはリクエストを理解しましたが、それを実行することを拒否しています。承認は役に立たず、リクエストは繰り返されるべきではありません。要求メソッドがHEADでなく、サーバーが要求が満たされなかった理由を公開したい場合、エンティティの拒否の理由を記述する必要があります。サーバーがこの情報をクライアントに提供したくない場合は、代わりにステータスコード404(Not Found)を使用できます。

これらは両方とも、404よりも意味的に正確です。リソースが存在するため、404は正しくありません。 401は正しいはずですが、認証は必要ありません。あいまいさによるセキュリティはセキュリティではありません。 403はリクエストが理解されるため正しいです。リソースが存在するのはリクエストの処理を拒否するだけです。 404が発生する理由を明らかにしたくない場合は、403が適切です。

いずれにしても、301リダイレクトはnotが適切であり、リソースは移動していません。

11
Jarrod Roberson

検索から外したいページの先頭にnoindex,nofollow,noarchiveタグを使用します。

noarchiveタグは検索から物事を非常にすばやく取得する傾向があることがわかりましたが、noindexは検索を停止する場合がありますが、既に存在する場合はフラッシュする必要があります検索結果のうち。

管理者アクセスの質問に関しては、ここにいる他の人たちは、セキュリティに関するいくつかのアドバイスをすでに出しています。チェックアウトすることをお勧めします。

1
Andrew Martin

これは管理者向けのページであるため、「キー」パラメータの有無にかかわらず、ページはインデックス化できません。したがって、管理者以外のWebページは404ステータスコードを送信でき、同じURLをそのまま残すことができます。ページが移動したことをGoogleに伝えてから、存在しないページにリダイレクトするので、リダイレクトしないでください。

これは、Googleも同様です。ダミーページに移動するとどうなるかをご覧ください: http://www.google.com/analytics/asdsas

1
dm-guy