301 redirect

3. maj, 2007 af Martin Østergaard

Vi står nogle gange overfor at skulle reindeksere et nyt website, som har skiftet url. Dette kunne være en blog som var på www.etsite.dk/blog som skulle være et subdomæne istedet for f.eks. blog.etsite.dk. På bloggen er der adskillige indlæg, hertil adskillige kategorier og endda flere sider med tekst, billeder osv. Problemet er at dette website allerede er indekseret, og derved kan en søgning på google, godt ende i man finder et link som ikke eksistererer længere, eftersom bloggen er blevet flyttet. Man kan sætte en 404 side op til at fange brugeren, men sandsynligheden for at brugeren fortsætter med at lede på websitet er meget lille. Her kommer 301 redirects ind i billedet.

Eks.
Mit indlæg på url’en www.etsite.dk/blog/et-emne.php har eksisteret i lang tid, og endda gået hen og fået en pagerank af google. Hvis jeg nu flytter min blog over til ovennævnte subdomæne, så ville url’en ikke eksistere længere, og derved vil min pagerank gå tabt. For at forhindre dette + det også gør at dine allerede indekserede sider ikke forsvinder fra google, kan man redirecte url’en til den nye placering med et 301 redirect (permanent redirect). På denne måde går din pagerank ikke tabt, og brugeren ryger direkte videre til det de leder efter – også selvom det nu har en helt anden adresse.

Man kan lave en 301 redirect på flere måder. Ved php kan man anvende .htaccess fil til det. Det er overskueligt, nemt men også tidskrævende. En anden metode er at gøre det direkte i php filen med et script. Ikke så overskueligt (da man skal have samtlige af sine gamle sider åbnet en efter en) og meget tidskrævende. Vil derfor anbefale .htaccess metoden til alle php brugere. Ved asp og asp.NET er det en anden metode. Man kan desværre ikke bruge en .htaccess fil i disse 2 systemer, og man er derfor tvunget til direkte at gøre det i IIS serverven, eller direkte i filerne vha. script.

.htaccess
Ved brug af .htaccess skal man bruge følgende kode:
redirect 301 /gammel-side.php http://blog.website.dk/ny-side.php
Dette vil flytte www.website.dk til den nye adresse blog.website.dk/ny-side.php

For at flytte hele mapper over kan man bruge følgende:
redirect 301 /gammel-mappe http://blog.website.dk/ny-mappe

En nem og elegant måde at gøre det på. Det bedste man kan gøre er at redirecte de gamle sider direkte til den nye placering, og ikke bare flytte en hel mappe over til at gå direkte til forsiden f.eks. Dette er en usmart måde at gøre det på, da én side ikke kan have det samme indhold som de gamle sider. Derfor flyt med omtanke, og brug hellere de minutter ekstra på at gøre det ordenligt (ligesom med alt andet her i livet 😉 )

asp metoden
Ved at asp kan man gøre det direkte i filen. Koden for dette ser således ud:

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”;
Response.AddHeader(“Location”,http://www.website.dk/ny-side.asp);
%>
Denne kode er det eneste filen skal indeholde.

asp.NET
Ved asp.NET kan man ligeledes gøre det direkte i filen. Dette ser sådan her ud:

<script language=”c#” runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,http://www.website.dk/ny-side.aspx);
}
</script>

Igen er det eneste som filen skal indeholde.

Det var alt for nu, så husk hvis du fjerner en side fra dit website så skal brugerne og søgemaskinerne også have det af vide.

Skrevet i Søgemaskineoptimering | Kommentar 108 kommentarer »

Kommentarer:
  1. Morten

    Hej Martin.

    Tak for svar 🙂

    Måske jeg skulle have formuleret mig mere præcist. Der er tale om det samme domæne. Det er udelukkende en unik URL fra en Google søgning, der skal redirectes til en anden adresse på samme domæne.

    //Morten


  2. Martin Østergaard

    Hej Morten,

    Jamen så er det bare at bruge ovenstående eksempel:
    redirect 301 /A http://www.domæne.dk/B


  3. Morten

    Super – tak 🙂

    /B er ikke en mappe, men nærmere et ID, da sitet benytter et CMS. Skal .htaccess filen placeres i root, eller hvad foreslår du?

    //Morten


  4. Martin Østergaard

    Hvis det er et ID er det bare skrive det. F.eks. A.php eller ID=32 eller hvad nu.

    Placeringen er meget nemt, det skal være i roden ellers virker det ikke 🙂


  5. Morten

    Jeg takker og bukker 😀

    //Morten


  6. Martin Østergaard

    Velbekomme da 🙂


  7. Jesper

    Af en eller anden årsag linker du stadig til en slettet adresse hos mig ??
    tiffany-lamper-32/ – selvom det ikke er et aktivt link her på siden er der noget google fanger ??


  8. Martin Østergaard

    Hej Jesper,

    Jeg fandt et link som ikke var “brudt” endnu, tror det har været det som google har fanget. Dit link er jo beskrevet “et par gange” i dette indlæg efterhånden 🙂 Prøv og se om det ikke forsvinder, ellers vend tilbage


Kommentar