Хитрый редирект на ASP.NET 2

Grim
На сайте с 13.04.2005
Offline
144
621

Есть сайт на ASP. Скажем, mainsite.ru.

По информации в заголовке:

Server: Microsoft-IIS/6.0

X-powered-by: ASP.NET
X-aspnet-version: 2.0.50727

И есть у основного домена mainsite.ru алиас aliasite.ru (т.е. физически это один сайт, доступный по двум адресам).

Дык вот, как бы сделать 301 редирект с домена aliasite.ru на домен mainsite.ru? Всех страниц, конечно.

В древних скрижалях рунета нашел такое:

<script runat="server">

private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.new-url.com");
}
</script>

Но подозреваю, что это не то что мне нужно в данном случае.

Помогите, пожалуйста, в ASP ни в зуб ногой, но вот такой достался сайт в наследство.

Заранее спасибо!

God loves me, not you, bastard!
-=Urbanus=-
На сайте с 12.05.2010
Offline
56
#1

Почему это практически то что нужно, но нужно прописать в мастерпейдже или в базовой странице если есть.

Если нету обявляете базовый класс –страницу, и в сs или vb файле в зависимости от языка (C# Basic) прописать

private void Page_Load(object sender, System.EventArgs e)

{

Response.Status = "301 Moved Permanently";

Response.AddHeader("Location","http://www.new-url.com");

}

Потом проставить всем страничкам базовую как наследника.

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

А так:

protected void Application_BeginRequest(object sender, EventArgs e) {

var host = Request.Url.Host;

if (host.Equals("aliasite.ru", StringComparison.OrdinalIgnoreCase)) {

var newUrl = new UriBuilder(Request.Url);

newUrl.Host = host;

Response.StatusCode = 301;

Response.Status = "301 Moved Permanently";

Response.AddHeader("Location", newUrl.Uri.AbsoluteUri);

Response.End();

return;

}

}

Это писать в global.asax

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