私の MVC3 アプリケーションでは、コントローラー基本クラスのOnActionExecuting()
メソッドに以下を追加しました。
int pageNumber = 0;
// deny crawl for bots on pages
if (filterContext.ActionParameters.ContainsKey("pageNumber"))
{
pageNumber = Convert.ToInt16(filterContext.ActionParameters["pageNumber"]);
if ((Request.UserAgent.Contains("msnbot") |
Request.UserAgent.Contains("googlebot")) && pageNumber > 2)
{
Response.StatusCode = 410;
Response.Status = "410 Gone";
filterContext.Result = new RedirectResult(Url.Action("NoCrawlerMessage", "Home"));
}
}
デバッグ中に、ブラウザのユーザー エージェントを変更して「googlebot」または「msnbot」を含めると、ページが正常にリダイレクトされます。
ただし、これを本番環境に置いて再試行すると、まったく変更がありません。要求されたページが読み込まれますが、そうではありません。
ここで何が問題なのですか?