2011-08-25 116 views
0

我试图实现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() 

没有成功。我猜我做错了,这很简单。请帮忙!提前致谢。

回答

1

您是否在ASP.NET已经开始填充响应缓冲区后尝试这样做?尝试先调用Response.Clear()。

+0

我会尝试Response.Clear方法,看看是否有效。 – letsgetsilly

1

你发布的代码对我来说工作得很好。

您可以尝试使用RedirectPermanent方法。

+0

这段代码在他以前为我工作过。我认为差异可能是我在请求生命周期的早期阶段在模块中使用它,但我对请求生命周期并不熟悉,所以我不确定原因。感谢您的建议,但不幸的是,我只在.net 3.5上。 – letsgetsilly