Du gör en handler som tar hand om alla anrop till *.asp som gör en 301-redirect till den nya sidan
Det är inte riktigt det enklaste, men det är enda sättet att behålla eventyuell kraft från sökmotorerna
3 svar · 519 visningar · startad av Fredde Mannen
Jag kommer inom kort att byta ut min förenings hemsida mot en ny.
Dock känns det ju inte som att man vill bara radera sidorna, så när folk som har kvar länkar går in på dem möts av 404:or till ex. :)
Sidan har varit i ASP 3.0, och har ny uppdaterats till ASP.NET 3.5
Vad är enklaste sättat att skicka de requests som är till http://www.domain.com/filnamn.asp till en http://www.domain.com/has-moved.aspx
Obs! Utan jidder i IIS så att säga :)
Du gör en handler som tar hand om alla anrop till *.asp som gör en 301-redirect till den nya sidan
Det är inte riktigt det enklaste, men det är enda sättet att behålla eventyuell kraft från sökmotorerna
Du gör en handler som tar hand om alla anrop till *.asp som gör en 301-redirect till den nya sidan
Det är inte riktigt det enklaste, men det är enda sättet att behålla eventyuell kraft från sökmotorerna
Precis vad jag var ute efter. :)
Får googla lite på handlers... har inte skrivt någon själv än så. :)
Men det skall nog inte vara så svårt!
i fall man andra undrar..
Skrev ihop en liten httpmodule som gör det eftersökta för mig i alla fall.
Det lilla jag testade.. :e
HasMovedModule.cs
namespace Registry.Handlers
{
public class HasMovedModule : System.Web.IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
throw new NotImplementedException();
}
public void Init(System.Web.HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
HttpRequest request = HttpContext.Current.Request;
string legacyUrl = request.Path.ToLower();
if (legacyUrl.EndsWith(".asp"))
{
string newPath = "/hasmoved.aspx?legacypath=" + legacyUrl;
response.Clear();
response.Status = "301 Moved Permanently";
response.AddHeader("Location", newPath);
response.End();
}
}
#endregion
}
}
web.config under httpModules
<add
name="HasMovedModule"
type="Registry.Handlers.HasMovedModule, Registry.Handlers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
/>