0

我需要对某些网址进行 301 重定向。以下是代码的骨架

public override RouteData GetRouteData(HttpContextBase httpContext)
  {
     .
     .
     .

      if (newUrl.Length > 0)
      {
          response.Status = "301 Moved Permanently";
          response.RedirectLocation = newUrl;
          response.End();
      }
  }

这很好用。它针对某些 URL 重定向正确。但是,我想有一种方法来检测下一个请求中是否发生了 301 重定向。所以我希望使用一个标志作为会话变量的一部分。像这样的东西:

httpContext.Session["RedirectHappened"] = true;

但 Session 对象为空。如何访问会话?或者有没有其他方法可以检测当前的 200 OK 请求是否是先前 301 重定向的结果。

谢谢。

4

1 回答 1

0

我们RedirectToActionPermanent在相应的控制器中使用 MVC 解决了这个问题,并且我们正在使用 Session 对象设置标志。

 public ActionResult Index()
 {
    Session["RedirectFromOldUrl"] = true;

    return RedirectToActionPermanent("action", "controller");
 }
于 2013-06-07T04:19:13.193 回答