当我使用这些在线主机标题分析器检查我的页面时,该页面显示200 OK。
但是在我的浏览器中查看时,它会重定向到另一个网站(这就是我想要的方式)。
我使用的代码是:
context.Response.Status = "301 Moved Permanently";
context.Response.AddHeader("Location", "http://www.example.com/article" + articleID);
context.Response.End();
我将此代码放在HttpModule
。
它正在工作,因为当你尝试点击网址时,它会进行重定向。 它似乎没有返回正确的http标头。
有什么不对吗?
答案 0 :(得分:1)
在添加标题之前,请确保响应缓冲区完全清除:
context.Response.Clear();
context.Response.Status = "301 Moved Permanently";
context.Response.AddHeader("Location", "http://www.example.com/article" + articleID);
context.Response.End();
答案 1 :(得分:1)
<强>尝试:强>
context.Response.StatusCode = 301;
context.Response.StatusDescription = "Moved Permanently";
context.Response.RedirectLocation = "http://www.example.com/article" + articleID;
context.Response.End();
我在自定义模块中使用上述内容,它确实返回了正确的301 HTTP响应。
答案 2 :(得分:1)
您的代码完全正确。我已经使用了你多年来所拥有的东西:
context.Response.Status = "301 Moved Permanently";
context.Response.AddHeader("Location",URL);
context.Response.End();
答案 3 :(得分:0)
你可以尝试使用: HttpContext.ApplicationInstance.CompleteRequest()
而不是Response.End()?
答案 4 :(得分:0)
当我在Web Development Helper中使用HTTP日志记录时,我看到了301和200.所以,是的,你的代码是正确的。