301重定向使用响应头无法正确重定向
问题描述:
我试图实现301重定向用于URL重写/ SEO优化的目的。我在我的VB.NET网站的模块中执行这些重定向。301重定向使用响应头无法正确重定向
当我在标题中指定一个新位置时,它总是将新位置附加到现有url上,而不是完全替换它或使用相对路径。因此,而不是一个很好的URL,我得到两者的结合:
http://site.com/productList.aspx?id=123&fid=123&mid=123http://site.com/store/books/
下面是我使用重定向代码:我试图使用相对〜/路径
httpContext.Response.Status = "301 Moved Permanently"
httpContext.Response.AddHeader("Location", "http://site.com/store/books")
httpContext.Response.End()
没有成功。我猜我做错了,这很简单。请帮忙!提前致谢。
答
您是否在ASP.NET已经开始填充响应缓冲区后尝试这样做?尝试先调用Response.Clear()。
答
你发布的代码对我来说工作得很好。
您可以尝试使用RedirectPermanent方法。
+0
这段代码在他以前为我工作过。我认为差异可能是我在请求生命周期的早期阶段在模块中使用它,但我对请求生命周期并不熟悉,所以我不确定原因。感谢您的建议,但不幸的是,我只在.net 3.5上。 – letsgetsilly
我会尝试Response.Clear方法,看看是否有效。 – letsgetsilly