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