Редиректы в ASP.NET

V@der
На сайте с 22.11.2007
Offline
96
1921

Возникла острая потребность в организации нескольких редиректов для сайта (с опр. страниц на главную), написанном на C# и использующим ASP.NET.

Начал копаться в коде и нашел файл Global.asax.cs, в котором были уже поставлены рабочие редиректы. Выглядят примерно так:


if (page == "/index.html")
{
Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", path.Replace("/index.html",""));
Response.End();
return;
}

Сделал по аналогии с другими страницами, но редиректы не встали. :( Есть ли здесь знатоки, которые могли бы помочь советом, что же надо сделать, чтобы организовать пару редиректов?

Metla2
На сайте с 26.10.2008
Offline
52
#1

То?


protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
string currentMenuItem = Request.Url.PathAndQuery;

if (!String.IsNullOrEmpty(currentMenuItem))
{
SelectMenuItem(currentMenuItem);
}
}
}

private void SelectMenuItem(string currentItem)
{
switch (currentItem)
{
case "/pages.aspx?pageid=1":
Response.Redirect("/pages.aspx?pageid=1");
break;
case "/products.aspx":
Response.Redirect("/");
break;
case "/pages.aspx?pageid=5":
Response.Redirect("/");
break;
case "/certificates.aspx":
Response.Redirect("/about.aspx");
break;
case "/faq.aspx":
Response.Redirect("/help.aspx");
break;
case "/pages.aspx?pageid=4":
Response.Redirect("/load.aspx");
break;
default:
Response.Redirect("/.aspx");
break;
}
}
VoV@
На сайте с 22.09.2007
Offline
196
#2

Попробуйте поменять:

Response.AddHeader("Location", path.Replace("/index.html",""));

на:

Response.AddHeader("Location", path.Replace("/index.html","http://www.site.ru"));

т.е. явно задать адрес редиректа.

⭐ Разработка Андроид-приложений (Xamarin C#). ⭐ Разработка ASP.NET (WebForms, MVC, WebAPI, Core). ⭐ Цой жив!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий