Как сделать так, чтобы постоянное перенаправление 301 работало, когда в строке запроса есть параметры? - PullRequest
3 голосов
/ 22 июля 2010

Я переместил некоторые из моих старых страниц asp на новый сайт aspx.На всех старых страницах, которые я использовал (для файла example.asp):

Response.Status = "301 Moved Permanently"; 
Response.AddHeader("Location","http://www.example.com/example.aspx");

Проблема в том, что когда страница example.com/example.asp?param=value¶m2=value2
запрашивается - перенаправление не работает ...

Кто-нибудь ...?

Ответы [ 3 ]

2 голосов
/ 23 августа 2012

Это решение будет работать с классической страницы ASP.В основном пример того, что сказал запах.

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.test.com/default.aspx?" + Request.QueryString
Response.End
%>
0 голосов
/ 19 июня 2011

Вы можете попробовать что-то вроде этого, чтобы убедиться, что строка запроса переносится:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Status = "301 Moved Permanently";
    string sQueryString = this.Request.ServerVariables["QUERY_STRING"];
    Response.AddHeader("Location", String.Format("http://www.domain.com/example.aspx?{0}",   sQueryString));
}
0 голосов
/ 22 июля 2010

Добавьте параметры строки запроса в конец заголовка местоположения, разделенные знаком вопроса. Я верю, что это в Request.Url.Query.

...