Перенаправление не работает на классическом сайте Asp

Сайт, который я размещаю, в настоящее время находится в стадии разработки, поэтому я пытаюсь перенаправить все страницы обратно на домашнюю страницу. Я использую следующий код для перенаправления:

Response.Status = "302 Moved Temporary"
Response.AddHeader "Location", "http://www.soundczar.com" 
Response.End()

Однако единственный браузер, который может правильно перенаправлять, — это Opera. Firefox, IE и Chrome не могут перенаправлять страницы. На прошлой неделе у меня была такая же проблема с другим классическим сайтом asp. Я разместил этот код в конце нижнего колонтитула SSI. Какие-либо предложения?


person hijinxbassist    schedule 22.01.2013    source источник


Ответы (1)


Установив их в нижнем колонтитуле, вы, вероятно, опоздаете для большинства браузеров - вам нужно отправить его в заголовке, а заголовки к тому времени уже будут отправлены. Лучше всего обработать условие до того, как произойдет какой-либо вывод страницы.

Если вы не можете этого сделать, вам нужно будет буферизовать всю страницу и очистить буфер перед перенаправлением, когда вы нажмете это условие:

Response.Buffer = True

Other_Code_Here()

If redirect_condition Then
    Response.Clear
    Response.Status = "302 Moved Temporary"
    Response.AddHeader "Location", "http://www.soundczar.com"
    Response.End()
End If
person webaware    schedule 22.01.2013
comment
Спасибо за ответ. Я пробовал это, и в моей ситуации это не работает. Я думаю, причина в том, что он включен на каждую страницу, как только страница перенаправляется, она получает сигнал перенаправить снова, и снова, и так далее. - person hijinxbassist; 22.01.2013
comment
Просто неправильное кодирование с моей стороны. Спасибо, что оставили часть redirect_condition вашего ответа ... заставили меня осознать свою глупую ошибку: P - person hijinxbassist; 22.01.2013