我需要为某些网址执行301重定向。以下是代码的骨架
public override RouteData GetRouteData(HttpContextBase httpContext)
{
.
.
.
if (newUrl.Length > 0)
{
response.Status = "301 Moved Permanently";
response.RedirectLocation = newUrl;
response.End();
}
}
这很有效。它重定向正确的某些网址。但是,我希望能够检测到下一个请求中发生了301重定向。所以我希望使用一个标志作为Session变量的一部分。像这样:
httpContext.Session["RedirectHappened"] = true;
但Session对象为null。我如何访问会话?或者是否有任何其他方法来检测当前200 OK请求是否是先前301重定向的结果。
感谢。
答案 0 :(得分:0)
我们在相应的控制器中使用MVC的RedirectToActionPermanent
解决了这个问题,我们使用Session对象设置了标志。
public ActionResult Index()
{
Session["RedirectFromOldUrl"] = true;
return RedirectToActionPermanent("action", "controller");
}