Sådan laver du 301 redirects

VN:F [1.9.22_1171]
Hvad synes du om artiklen? Giv en vurdering herunder:
Rating: 4.0/5 (17 votes cast)

Der findes tusindvis af 301 redirect artikler på nettet, men det er de færreste der kommer rundt om ret mange problemstillinger i forhold til redirects.

Det er muligt jeg ikke har været i stand til at finde dem, men den type redirects jeg ofte har brug for, skal jeg som regel lede efter flere forskellige steder på nettet. Derfor dette indlæg.

Nu er jeg på ingen måde ekspert i avancerede redirects, men jeg ved at de er pokkers vigtige, derfor har jeg gennem tiden skulle lave en del redirects på mange TYPO3 løsninger. I Magento har jeg også tit brug for at lave redirects.

Her i indlægget vil jeg vise dig de typer af redirects jeg bruger mest – og tit selv har savnet en samlet liste med eksempler om.

Skal lige starte med at sige at det dog kun er Linux server redirects jeg vil behandle i dette indlæg, så hvis du har en Windows server eller andet, så er der ikke meget hjælp at hente i dette indlæg.

Hvorfor er 301 redirects vigtige?

I kampen for at undgå duplicate content (det samme indhold på flere webadresser), er det vigtigt på ethvert website at opsætte 301 redirects, sådan så de sider søgemaskinerne indexerer på din hjemmeside kun findes på én webadresse (url).

Sådan kommer du i gang med 301 redirects

For at kunne lave 301 redirects, skal du finde en fil på dit webhotel i rodbiblioteket der hedder .htaccess. I denne fil skal du tilføje ekstra linjer for hver redirect du ønsker at lave.

Det vigtigste at fortælle dig er at du skal putte dine linjer efter:

RewriteEngine On
RewriteBase /

### dine redirects herefter ###

Din .htaccess fil kan med stor sandsynlighed se mere avanceret ud, men hvis du er i tvivl, så prøv at putte dine ekstra linjer ind nederst i filen. Hvis det ikke virker, så er der sandsynligvis en fejl i din indtastning af linjerne.

301 redirects fra et domæne til et andet

Dette bør sættes op på samtlige websites. Hvis du kun har 1 domæne, bør du overveje om du vil bruge www.ditdomaene.dk eller bare ditdomaene.dk (uden www). Den du ikke beslutter dig for at bruge skal du 301 redirecte til den du bruger.

Eksempel:

RewriteCond %{HTTP_HOST} ^ditdomaene\.dk [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

Har du købt en flere domæner der minder om hinanden, så skal du redirecte dem alle til et “hoveddomæne”. Det gælder i hvert fald hvis det er samme indhold der vises på de forskellige domæner.

Eksempel:

RewriteCond %{HTTP_HOST} ^ditdomaene\.dk [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^ditdomaene\.com [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.ditdomaene\.com [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^ditdomaene\.eu [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.ditdomaene\.eu [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

Har du også købt domæner som indeholder special tegn, så vil det ikke virke hvis du sætter f.eks. æ, ø eller å ind i din .htaccess fil. Det du skal gøre hvis du vil redirecte et domæne med special tegn er først og fremmest at finde domænets “punycode”.  Det kan du f.eks. gøre med dette værktøj: http://mct.verisign-grs.com.

Nu vil jeg vise et eksempel hvor ditdomæne.dk bliver redirectet til www.ditdomaene.dk. Først skal jeg lige finde domænets punycode. Jeg taster ditdomæne.dk ind i tekstfeltet på konverteringsværktøjet herover og finder ud af at punycoden er: xn--ditdomne-o0a.dk

Eksempel:

RewriteCond %{HTTP_HOST} ^xn--ditdomne-o0a\.dk [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.xn--ditdomne-o0a\.dk [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/$1 [L,R=301]

301 redirects af statiske url’s

Hvis du har skiftet CMS eller webshop system, så vil du også have brug for at lave redirects på samtlige indexerede sider i søgemaskinerne på dit website, hvis dine url’er har ændret sig.

En side der før hed www.ditdomæne.dk/kontakt/medarbejdere.html hedder nu måske bare www.ditdomæne.dk/medarbejdere.html. Denne side skal redirectes til den nye adresse, for at søgemaskinerne kan få rettet deres index og du ikke mister linkværdi til denne side.

Denne procedure bør gentages for samtlige sider søgemaskinerne har indexeret på dit website.

Eksempel:

redirect 301 /kontakt/medarbejdere.html http://www.ditdomæne.dk/medarbejdere.html

Første del af linjen fortæller at det er en 301 redirect. Anden del af linjen viser hvilken “gammel” url der skal redirectes og sidste del hvad der skal redirectes til.

301 redirects med dynamiske url’s

Du kan i mange tilfælde også have brug for at redirecte “dynamiske” url’s. Hvis dine sider f.eks. tidligere er blevet indexeret med index.php?ID=17, index.php?ID=222, index.php?ID=632 osv, og efterfølgende er dit site blevet lavet om til at kunne håndtere pæne url’er, så skal du lave dine redirects på en lidt anden måde.

Eksempel:

RewriteCond %{HTTP_HOST} ^www\.ditdomaene\.dk
RewriteCond %{QUERY_STRING} ^ID=17$ [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/kontakt.html? [R=301,L]

RewriteCond %{QUERY_STRING} ^ID=222$ [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/medarbejdere.html? [R=301,L]

RewriteCond %{QUERY_STRING} ^ID=632$ [NC]
RewriteRule ^(.*)$ http://www.ditdomaene.dk/produkter.html? [R=301,L]

301 redirect alle url’er med .asp til ny forside

RewriteRule (.*)\.asp http://www.ditdomæne.dk/? [L,R=301]

Håber du kunne bruge det til noget. Skriv gerne hvis der er noget der mangler eller der har sneget sig fejl ind i mine eksempler. 🙂

VN:F [1.9.22_1171]
Hvad synes du om artiklen? Giv en vurdering herunder:
Rating: 4.0/5 (17 votes cast)
Sådan laver du 301 redirects, 4.0 out of 5 based on 17 ratings

Kommentarer (25)

  • Anders Christensen

    Og som en sidebemærkning kan man putte det hele ind i konfigurationsfilen for den virtuelle host i apache konfigurationen. Så hvis man har et hårdt belastet site og derfor har valgt at slå .htaccess fra for at spare cpukræfter på det, vil det fungere alligevel og belaste serveren mindre end et htaccess tjek for hver forespørsel på serveren.

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 5.0/5 (1 vote cast)
    02-10-2010 at 13:26
  • Henrik Andersen

    Hej Anders.

    Hastighedsoptimering betyder jo også mere og mere, så tak for tippet. 🙂

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    02-10-2010 at 13:53
  • Oxkjær

    Interessant artikel – hvis man altså er til Linux :o)
    Nu er jeg til Windåser, og der plejer jeg at lave en fil med nedenstående indhold som jeg så includer på mine sider:

    strCorrectDomain = “www.domain.dk”
    strDomain = request.ServerVariables(“HTTP_HOST”)
    if strDomain strCorrectDomain then
    strSide = Request.ServerVariables(“SCRIPT_NAME”)
    strFlyt = strCorrectDomain & strSide
    strFlyt = lcase(strFlyt)
    strFlyt = replace(strFlyt, “default.asp”, “”)
    Response.Status=”301 Permanently Moved”
    Response.AddHeader “Location”, “http://”& strFlyt
    response.end
    end if

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    02-10-2010 at 18:44
  • Per H. Jørgensen

    God beskrivelse! 301 har tidligere givet mig grå hår på hovedet (mange år før de burde dukke op), så jeg ved der er et behov for en grundig og forståelig vejledning 🙂

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    03-10-2010 at 12:45
  • Henrik Andersen

    @Oxkjær

    Tak for det, så er der også lidt tips til Windows folket 🙂

    @Per
    Mange tak. 🙂

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    03-10-2010 at 15:31
  • Torben Lundsgaard

    Husk at følgende metacharacters altid skal escapes med \
    . [] () ^ $ \ * + ? {} |

    Forkert: RewriteCond %{HTTP_HOST} ^ditdomaene.dk [NC]
    Korrekt: RewriteCond %{HTTP_HOST} ^ditdomaene\.dk [NC]

    Det betyder ikke noget i dine eksempler men det er en dårlig vane som kan være meget uheldig i andre regular expressions.

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    04-10-2010 at 11:09
  • Henrik Andersen

    @Torben

    Tak for tippet. Det får jeg lige rettet til i indlægget.

    Hvordan ville det så se ud i et af de nederste eksempler? 🙂

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    04-10-2010 at 11:13
  • Rasmus

    Hej Henrik

    Tak for en god og informativ artikel. Jeg kan godt se, at den ikke er af nyeste dato, men jeg prøver alligevel at stille et enkelt spørgsmål: Når jeg har valgt “Foretrukkent Domæne” i Googles Webmasterværktøjer, er det så alligevel nødvendigt at bruge en 301 redirect?

    Venligst
    Rasmus

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    29-01-2011 at 20:56
  • Henrik Andersen

    Hej Rasmus

    Mange tak for din kommentar.

    Det er et godt spørgsmål, som jeg ikke er 100% sikker på jeg kender svaret på. Men en ting er helt sikkert. Gør du begge dele er du 100% sikker på at du har gjort det rigtigt. 🙂

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    29-01-2011 at 21:00
  • Rasmus

    Hej Henrik

    Det har du selvfølgelig ret i.

    Jeg spørger fordi det hos one.com – hvor jeg har domæne – er ret besværligt at indsætte den 301. Men jeg må vel bide i det sure, tekniske æble…

    Under alle omstændigheder tak for svaret. 🙂

    Rasmus

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    01-02-2011 at 00:11
  • Thomas

    Hvordan laver man en 301 i magento, når linket ser sådan ud:

    exp.dk/ølbo-åhave 301 til exp.dk/ny-ølbo-åhave

    Har du et tip til det? URL omskrivning i admin virker ikke, og htaccess virker heller ikke? hvordan klare jeg den?

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    18-11-2011 at 10:25
  • Henrik Andersen

    Hej Thomas

    Prøv med følgende i htaccess:

    redirect 301 /xn--lbo-have-d0a9p [HTTP]exp.dk/xn--ny-lbo-have-38a6v

    Erstat [HTTP] med http://

    Men du bør undgå specialtegn (som æ, ø og å) i url’er, så jeg ville lave destinationsurl’en om til noget der ikke indeholder specialtegn.

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    18-11-2011 at 10:31
  • Mette

    Jeg døjer i øjeblikket med at lave korrekte 301 redirects. Jeg har benyttet mig af din guide, men jeg får ikke det rigtige http header svar.

    Hvis jeg tester på et link uden www, så får jeg godt nok returneret 301 redirect. Hvis jeg tester på samme link med www, får jeg 404 not found.

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    23-12-2011 at 21:25
  • Henrik Andersen

    Hej Mette

    Jeg har lige fjernet dit eksempel, da jeg ikke er interesseret i at have links til “døde” sider på bloggen.

    Der kan være mange årsager til dit problem. Du må gerne sende din htaccess fil til mig på mail, så vil jeg gerne se om jeg kan give dig et hurtigt svar.

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    24-12-2011 at 12:10
  • Dan Hansen

    Hej Henrik,

    Tak gamle roomie – så fik jeg styr på min 301 redirect.
    Selvom jeg havde bedt min webhotel udbyder om hjælp, så kunne de ikke give mig den rigtige 😀
    Faktisk gav de mig den med ronæsbro.dk i stedet for – og ikke punycode! 🙁

    Med din hjælp og så lige:
    >Options +FollowSymlinks
    >RewriteEngine on
    … tilføjet i starten af .htaccess filen, så virkede det 😀

    Tak for hjælpen (Og så søgte jeg bare på nettet efter 301 redirect og faldt tilfældigt over din side 😀

    Hilsen Dan

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    11-02-2012 at 14:54
  • Henrik Andersen

    Hej Dan

    Hehe. Sjovt, og selv tak 🙂

    Er glad for du kunne bruge det.

    mvh
    Henrik

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    11-02-2012 at 14:58
  • Michael

    Super artikel med god forklaring, jeg har i flere år instrueret andre og kunder i vigtigheden af 301, og hvordan.

    Næste gang får de et link hertil – og så kan jeg “skøjte” videre til noget andet 😉

    Takker

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    14-07-2012 at 11:20
  • Henrik Andersen

    Tak for det Michael 🙂

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    14-07-2012 at 11:29
  • Xander

    Hej Henrik. Jeg er ved at få styr på det med 301, men nu er mit spørgsmål følgende. Hvis du forstiller dig at vores inerpages er delt op i 3 afsnits, Head, body og footer. Flere steder bruger samme design ( med tekstindhold ) men ændre kun teksten i vores header. Vil det på nogen måde påvirke os mht DC. Hvis ja, er der en kode man kan smide i, så google ikke læser body og footer, men kun header.

    Tak:-)

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    27-07-2012 at 11:12
  • Henrik Andersen

    Hej Xander
    Har for meget af den samme tekst på alle sider, vil sandsynligheden for DC jo naturligt være større. Så det kan bestemt helt generelt betale sig at tænke i at minimere tekster der er ens på alle sider. Eller endnu bedre: Gøre dem unikke på hver side.

    Et alternativ, som har brugt et par steder er at “wrappe” den tekst google ikke skal læse ind i googleoff / googleon tags.

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    27-07-2012 at 14:00
  • Cenk Cavdar

    Hejsa,

    Utrolig god guide til at optimere hjemmesiden tak for det.

    Jeg har bare et par spørgsmål :

    når du roder i .htaccess file hvordan gør du det ? Downloader du filen først også editer med teksteditor og laver redirect ne på alle poster og uploader den bare med ændringerne ?????
    Jeg vil blive glad for et svar 🙂

    På forhånd tak for en god forklaring.

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    16-11-2012 at 15:46
  • Henrik Andersen

    Hej Cenk
    Mange tak for roserne. 🙂
    Jep. Jeg downloader filen, via ftp, og uploader den igen efter end redigering. Det kan blot være i notepad, hvis du ikke har en bedre editor.

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    17-11-2012 at 21:57
  • Thomas Rode

    Fedt indlæg! Har hjulpet mig meget. Sad med knap 2.000 redirects jeg skulle ha’ lavet, og nice bare at loade det op i .htaccess.

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    04-04-2013 at 16:49
  • Anders Voss

    Hej Henrik

    Tak for en god guide.
    Jeg står i den situation at jeg har skiftet min side fra .asp til .php
    Alle filerne hedder det samme, bare .php til sidst.

    Skal jeg lave en redirect for hver side eller er der et smart stykke kode jeg kan sætte ind?

    PFT

    VA:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    27-09-2014 at 13:48
  • Henrik Andersen

    Hej Anders

    Prøv med:

    RewriteEngine on
    RewriteRule ^(.*)\.asp$ /$1.php [R=301,NC]

    VN:F [1.9.22_1171]
    God kommentar? Stem her:
    Rating: 0.0/5 (0 votes cast)
    27-09-2014 at 14:02

Skriv en kommentar

Din email vil ikke blive synlig.