使用响应标头进行 301 重定向无法正确重定向
我正在尝试实现 301 重定向,以实现 url 重写/SEO 优化。我正在 VB.NET 网站的模块内执行这些重定向。
当我在标头中指定新位置时,它总是将新位置附加到现有 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()
我尝试使用相对 ~/ 路径,但没有成功。我猜我做错了,这很简单。请帮忙!提前致谢。
I'm attempting to implement a 301 redirect for purposes of url rewriting/SEO optimization. I'm performing these redirects within a module of my VB.NET website.
When I specify a new location in the header it always appends the new location onto the existing url instead of completely replacing it or using a relative path. So instead of a nice URL I get a combination of both:
http://site.com/productList.aspx?id=123&fid=123&mid=123http://site.com/store/books/
Here is the code that I'm using for the redirect:
httpContext.Response.Status = "301 Moved Permanently"
httpContext.Response.AddHeader("Location", "http://site.com/store/books")
httpContext.Response.End()
I've attempted to use relative ~/ paths with no success. I'm guessing that I'm doing wrong that is very simple. Please help! Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否尝试在 ASP.NET 已经开始填充响应缓冲区后执行此操作?首先尝试调用 Response.Clear()。
Are you trying to do this after ASP.NET has already started filling the response buffer? Try calling Response.Clear() first.
您发布的代码对我来说效果很好。
您可以尝试使用 RedirectPermanent 方法。
The code you posted worked fine for me.
You can try to use the RedirectPermanent method.