Redirect med 301

Redirect med PHP og Javascript

Skal en besøgende omdirigeres fra en placering til en anden når vedkommende taster en bestemt webadresse i browserens adressefelt, kan det gøres på flere måder:

Ny placering med PHP

Ved hjælp af en PHP-kommando placeret på siden den besøgende forsøger at åbne, kan vedkommende omdirigeres til en ny placering:

Redirect med PHP
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.nyt_domaene.dk/');
exit();

Ny placering med Javascript

En anden mulighed er at bruge Javascript - her omdirigeres den besøgende til en ny placering, når dette Javascript indsættes i 'head' af den "gamle" side:

Redirect med Javascript
window.location.replace('http://www.nyt_domaene.com/')  

Redirect 301 med htaccess

Et alternativ til omdirigering med PHP eller Javascript er, at indsætte kommandoen 'redirect 301' i dokumentet '.htaccess' - man skal dog være opmærksom på, at '.htaccess' er direkte tilknyttet servertypen Apache, og at denne metode derfor ikke kan bruges på andre typer servere.

Men kan man bruge en '.htacces' til at omdirigere den besøgende, har det den store fordel, at ingen af websitets sider skal ændres - dokumentet '.htacces' er en selvstændig fil placeret i 'root' af serveren, og den eneste funktion dokumentet har, at give serveren informationer om, hvilke handlinger den skal udføre i en given situation.

Det kan dog være nødvendigt at aktivere serverens læsning af '.htaccess', hvilket beskrives i artiklen "Aktivere htaccess i httpd".

I forhold til 'pagerank' og SEO vil søgemaskiner tolke en 'redirect 301' som en permanent flytning af den / de pågældende siders indhold - dette betyder samtidig, at omdirigeringen vil få mindst mulig negativ indflydelse på 'pagerank' og SEO - se i øvrigt artiklen "SEO-optimering-af-hjemmesider".

aktivere rewrite_module

Når jeg skal bruge kommandoen 'redirect 301', er det nødvendigt først at fortælle serveren, at den skal aktivere og give adgang til modulet 'rewrite_module', som er den enhed i Apache-serveren, der tillader en omdirigering:

Options +FollowSymLinks 
RewriteEngine On
"handling her.."

Ligesom i absolutte links / stier, markerer tegnet '/' foran de 2 php-sider, at stien tager udgangspunkt i 'root' af serveren - her adresseres siden "page_1.php":

Options +FollowSymLinks 
RewriteEngine On
	     ('root')/page_1.php

Placeringer i samme domæne

Herunder eksempler på omdirigeringer, hvor siderne er placeret i det samme domæme:

Med eller uden "www"

Af hensyn til SEO og søgemaskinernes indexing af hjemmesiden, er det næsten altid nødvendigt at beslutte, hvorvidt hjemmesiden domæne-navnn skrives med eller uden "www".

Når valget først er truffet, er det nødvendigt at lave en 'redirect 301' til en af de to forskellige versioner - læs meget mere om baggrunden for dette i artiklen "SEO - optimering af hjemmesider" i afsnittet "URL":

Redirect til "www"-versionen:
Options +FollowSymLinks 
RewriteEngine On
rewriteCond %{HTTP_HOST} ^domaene_navn.dk [NC]
rewriteRule ^(.*)$ http://www.domaene_navn.dk/$1 [R=301,L]
Redirect til en version uden "www":
Options +FollowSymLinks 
RewriteEngine On
rewriteCond %{HTTP_HOST} ^www.domaene_navn.dk [NC]
rewriteRule ^(.*)$ http://domaene_navn.dk/$1 [R=301,L]

Fra en side til en anden i root

Skal der laves en 'redirect 301' mellem to sider placeret i samme domæne, aktiveres først modulet 'rewrite_module', og dernæst angives de 2 sider:

Redirect mellem 2 sider
Options +FollowSymLinks 
RewriteEngine On
Redirect 301	/page_1.php	/page_2.php

2 sider i forskellige mapper

Ligger den ene eller begge sider placeret i en undermappe for eksempel kaldet "den_nye_mappe", er det nødvendigt at fortælle serveren dette:

2 sider i forskellige mapper
Options +FollowSymLinks 
RewriteEngine On
Redirect 301	/page_1.php	/ny_mappe/page_2.php

Placeringer i forskellige domæne

Herunder eksempler på omdirigeringer, hvor de 2 sider er placeret i forskellige domæme:

Mellem 2 sider i forskellige domæner

Ligger den nye side placeret under et andet domænenavn, indsættes web-adressen til det nye domæne før navnet på siden - '.htaccess' skal stadig placeres i 'root' af det "gamle" domæne:

Mellem 2 sider i forskellige domæner
Options +FollowSymLinks 
RewriteEngine On
Redirect 301	/page_1.php	http://www.nyt_domaene.dk/ny_mappe/page_2.php

Alle sider til samme side i nyt domæne

Skal alle sider i det "gamle" domæne sendes til den samme side i et nyt domæne, ser kommandoen således ud - her sendes alle sider i root samt undermapper til forsiden af "www.nyt_domaene.dk":

Alle sider til 1 side i nyt domæne
Options +FollowSymLinks 
RewriteEngine On
Redirect 301	/ 	http://www.nyt_domaene.dk/

Alle sider - samme placeringer

Har jeg kopieret alle sider fra et domænenavn til en ny placering under et andet domænenavn, skal hver side åbne kopien i det nye domænenavn:

Alle sider - samme placeringer
Options +FollowSymLinks 
RewriteEngine On
rewriteCond %{HTTP_HOST} ^gamle_domaene.dk [NC]
rewriteRule ^(.*)$ http://www.nyt_domaene.dk/$1 [R=301,L]