Det finns många al­ter­na­tiv för att omdi­ri­ge­ra domäner eller un­der­do­mä­ner till en annan del av din webbplats eller till en extern adress. Omdi­ri­ge­ring­ar utförs ofta via .htaccess, PHP-skript, HTML-me­ta­tag­gar och Ja­va­Script.

Vad används do­mänomdi­ri­ge­ring­ar till?

Omdi­ri­ge­ring­ar används för att informera servrar om att webb­plat­s­in­ne­håll har flyttats från en URL till en annan. Detta är nöd­vän­digt när den ur­sprung­li­ga web­ba­dres­sen är målet för en in­kom­man­de länk, har sparats på en an­vän­da­res dator eller kan ha en fram­trä­dan­de position i sök­mo­to­rer­nas re­sul­tats­i­dor (SERP). I detta fall meddelar omdi­ri­ge­ring­en webb­lä­sa­ren eller webbcraw­lern att in­ne­hål­let har flyttats och ger an­vän­da­ren en länk till den nya adressen istället. Utan omdi­ri­ge­ring­ar skulle webb­plats­be­sö­ka­re möta en 404-felsida istället för den webbplats de söker efter.

Detta är något som kom­mer­si­el­la webb­pro­jekt särskilt vill undvika. On­li­ne­bu­ti­ker erbjuder ett ständigt för­än­der­ligt sortiment av produkter som visas på en mängd olika webbsidor. När en artikel inte längre är till­gäng­lig vi­da­re­be­fordras po­ten­ti­el­la kunder till en sida med liknande produkter. På så sätt kan du effektivt styra be­sö­kar­flö­den och minimera av­vis­nings­fre­kven­sen.

När du ställer in en do­mänomdi­ri­ge­ring kan du också göra samma innehåll till­gäng­ligt på olika web­ba­dres­ser. Alla al­ter­na­ti­va adresser omdi­ri­ge­ras helt enkelt till önskad webb­plats­do­män, oberoende av den specifika URL eller sökväg som an­vän­dar­na anger.

Vilka typer av do­mänomdi­ri­ge­ring­ar finns det?

Man skiljer van­ligt­vis mellan omdi­ri­ge­ring­ar på kli­ent­si­dan och omdi­ri­ge­ring­ar på ser­ver­si­dan. Vid omdi­ri­ge­ring­ar på ser­ver­si­dan överförs mot­sva­ran­de HTTP-sta­tus­ko­der till an­vän­da­ra­gen­ter (webb­lä­sa­re eller webbcraw­lers). När det gäller omdi­ri­ge­ring­ar på kli­ent­si­dan ser det lite an­norlun­da ut. Dessa utförs utan någon form av svar, vilket innebär att inga sta­tus­ko­der utfärdas. Det är därför det senare inte stöds av alla an­vän­da­ra­gen­ter. Denna olägenhet kan ibland leda till si­tu­a­tio­ner där besökare stannar kvar på den ur­sprung­li­ga sidan och inte vi­da­re­be­fordras nå­gon­stans. Nackdelar som dessa är an­led­ning­en till att server-sidan ofta föredras för omdi­ri­ge­ring­ar. Klient-sidan bör endast användas när server-sidan har ute­slu­tits av tekniska skäl.

En annan typ av do­mänomdi­ri­ge­ring är den trans­pa­ren­ta eller osynliga omdi­ri­ge­ring­en. Med denna typ av omdi­ri­ge­ring ändras inte URL:en. När det gäller do­mänomdi­ri­ge­ring­ar med maskering ändras inte den URL som visas för an­vän­da­ren, även om klienten har vi­da­re­be­ford­rats till en annan domän och visas in­ne­hål­let på en annan webbsida. Eftersom denna typ av vi­da­re­be­ford­ran kan orsaka problem med in­dex­e­ring och hur URL:en visas i webb­lä­sa­ren re­kom­men­de­ras den dock inte om inte vissa be­gräns­ning­ar finns på plats.

Omdi­ri­ge­ring­ar på ser­ver­si­dan

I de flesta fall utförs omdi­ri­ge­ring­ar av domäner på ser­ver­si­dan via kon­fi­gu­ra­tions­fi­len .htaccess eller ett PHP-skript. Dessa metoder gör det möjligt att in­di­vi­du­ellt definiera vilken HTTP-statuskod som ska visas för an­vän­da­ra­gen­ten. Detta gör det möjligt för webb­platso­pe­ra­tö­rer att markera do­mänomdi­ri­ge­ring­ar som antingen per­ma­nen­ta eller till­fäl­li­ga. HTTP-sta­tus­ko­der­na 301 och 302 används för detta.

  • 301 – Permanent flyttad: Den begärda resursen är nu permanent till­gäng­lig under den omdi­ri­ge­ra­de URL:en. Den gamla URL:en kommer från och med nu att vara ogiltig. En 301-omdi­ri­ge­ring krävs här.
  • 302 – Till­fäl­ligt flyttad: Den begärda resursen är till­gäng­lig under den omdi­ri­ge­ra­de URL:en. Till skillnad från 301-koden förblir den ur­sprung­li­ga URL:en giltig.

Om HTTP-sta­tus­ko­den inte är ut­tryck­li­gen de­fi­ni­e­rad, utfärdar webb­ser­vern sta­tus­ko­den 302 under en omdi­ri­ge­ring på ser­ver­si­dan. Detta är inte alltid nöd­vän­digt, så det är bäst att manuellt ange önskad statuskod för varje omdi­ri­ge­ring, eftersom detta minskar risken för in­dex­e­rings­fel, såsom URL-kapning. Till skillnad från 301-omdi­ri­ge­ring­en in­for­me­rar 302-sta­tus­ko­den webbcraw­lers om att den ur­sprung­li­ga URL:en ska förbli indexerad. Om detta är avsett att vara permanent kon­kur­re­rar omdi­ri­ge­rings­a­dres­sen med omdi­ri­ge­rings­må­let i sök­mo­torin­dex­et.

.htaccess omdi­ri­ge­ring

.htaccess är en kon­fi­gu­ra­tions­fil för Apache-webb­serv­rar. Den används för att skriva över centrala kon­fi­gu­ra­tio­ner på ka­ta­log­ni­vå. Denna fil gör det möjligt för webb­platso­pe­ra­tö­rer att utföra ka­ta­logspe­ci­fi­ka in­ställ­ning­ar för domäner och deras un­der­ka­ta­lo­ger. En funktion hos .htaccess-filen är server-side do­mänomdi­ri­ge­ring­ar av enskilda adresser till andra URL:er.

Du kan ställa in en do­mänomdi­ri­ge­ring med hjälp av kod i .htaccess-filen. När en .htaccess-fil med följande kod har placerats i hu­vud­ka­ta­lo­ger­na omdi­ri­ge­ras för­fråg­ning­ar till den ur­sprung­li­ga domänen på ser­ver­si­dan till domänen www.example.com:

Redirect 301 / http://www.example.com/
apache­conf

Denna kodrad börjar med redirect 301 och bestämmer vilken HTTP-statuskod servern ska utfärda. Därefter följer sökvägen till det innehåll som ska omdi­ri­ge­ras. I exemplet ovan omdi­ri­ge­ras allt innehåll. Det sista steget utförs när den full­stän­di­ga des­ti­na­tions-URL:en omdi­ri­ge­ras till an­vän­da­ra­gen­tens URL: http://www.example.com.

Denna metod gör det möjligt att omdi­ri­ge­ra enskilda filer. Följande kod visar en .htaccess-omdi­ri­ge­ring från en webbplats till en annan:

Redirect 301 /directory/example-document.html http://www.example.com/example.html
apache­conf

Efter att HTTP-sta­tus­ko­den 301 har hanterats namnges filens ka­ta­log­väg, som ska omdi­ri­ge­ras permanent (/directory/example-document.html), och omdi­ri­ge­rings-URL:en (http://www.example.com/example.html).

Så här skulle den per­ma­nen­ta omdi­ri­ge­ring­en se ut på en Apache-server med ett aktivt mod_rewrite-modul:

RewriteEngine On
RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]
apache­conf

I kodrad 01 aktiveras Apache-webb­ser­verns mod_rewrite-modul med kommandot RewriteEngine On. Därefter följer ett RewriteRule med sökvägen till omdi­ri­ge­rings­fi­len och mål­a­dres­sen. Caret- och dollar­teck­nen markerar början och slutet på sökvägen, och L märker den sista mod rewrite-regeln för mot­sva­ran­de begäran. R=301 vi­da­re­be­ford­rar HTTP-status 301.

När du kon­fi­gu­re­rar en do­mänomdi­ri­ge­ring via .htaccess är det viktigt att komma ihåg att felaktiga in­mat­ning­ar kan få all­var­li­ga kon­se­kven­ser för webb­plat­sens funktion. Eftersom dessa ändringar träder i kraft direkt efter att du har sparat .htaccess-filen bör kon­fi­gu­ra­tio­ner­na alltid testas noggrant.

PHP-omdi­ri­ge­ring­ar

En do­mänomdi­ri­ge­ring kan inte bara göras via .htaccess-kon­fi­gu­ra­tion, utan också genom ett kommando i ett PHP-skript (t.ex. i index.php). Följande kod visar en permanent omdi­ri­ge­ring till den fiktiva mål­a­dres­sen www.example.com:

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.example.com");
exit;
?>
php

Vid vi­da­re­be­ford­ran via PHP-skript de­fi­nie­ras den avsedda HTTP-sta­tus­ko­den genom funk­tio­nen header i den andra raden av koden. I det här exemplet ska en permanent 301-omdi­ri­ge­ring utföras. Eftersom omdi­ri­ge­ring­ar på ser­ver­si­dan normalt utförs på till­fäl­lig basis måste aktiva åtgärder vidtas för att utföra per­ma­nen­ta omdi­ri­ge­ring­ar via sta­tus­ko­den 301. Vid per­ma­nen­ta omdi­ri­ge­ring­ar re­gi­stre­ras även do­mänomdi­ri­ge­ring­ens måladress med header. Omdi­ri­ge­ring­en i detta exempel går sedan till adressen http://www.example.com. Funk­tio­nen exit i rad 04 i koden avslutar skriptet och för­hind­rar att ef­ter­föl­jan­de kodrader exekveras. För att omdi­ri­ge­ring­ar ska fungera via PHP-skript måste kod­bloc­ket finnas i början av HTML-sidan. Detta för­hind­rar att servern överför HTML-innehåll till omdi­ri­ge­rings­si­dan.

Omdi­ri­ge­ring­ar på kli­ent­si­dan

Om det av tekniska skäl inte är möjligt att genomföra en omdi­ri­ge­ring av domänen på ser­ver­si­dan, har webb­platso­pe­ra­tö­rer möjlighet att använda lösningar på kli­ent­si­dan. HTML-me­ta­tag­gen refresh och Ja­va­Script är till­gäng­li­ga för detta. Nackdelen med omdi­ri­ge­ring­ar på kli­ent­si­dan är att servrarna inte levererar HTTP-sta­tus­ko­der till begärande webb­lä­sa­re eller webbcraw­lers, vilket innebär att de inte ut­tryck­li­gen in­for­me­ras om omdi­ri­ge­ring­en. Dessutom stöds inte omdi­ri­ge­ring­ar på kli­ent­si­dan av alla an­vän­da­ra­gen­ter, vilket innebär att det finns en risk att inte alla webb­plats­be­sö­ka­re omdi­ri­ge­ras.

Omdi­ri­ge­ring­ar på kli­ent­si­dan har en negativ inverkan på sök­mo­torin­dex­e­ring­en. Explicit ute­slut­ning från in­dex­e­ring genom HTTP-statuskod 301 sker inte med omdi­ri­ge­ring­ar på kli­ent­si­dan. Detta kan leda till att omdi­ri­ge­rings­do­mä­ner kon­kur­re­rar med mål­do­mä­ner när det gäller sök­mo­tor­rank­ning. Till skillnad från omdi­ri­ge­ring­ar på ser­ver­si­dan, som i stort sett förblir osynliga för an­vän­dar­na, är omdi­ri­ge­ring­ar på kli­ent­si­dan alltid för­knip­pa­de med för­dröj­ning­ar, vilket vissa användare kan märka.

Vi­da­re­be­ford­ran via HTML meta refresh

HTML-me­ta­re­di­rek­tio­ner im­ple­men­te­ras genom me­ta­tag­gar med at­tri­bu­tet http-equiv. Allt som behövs för detta är en enkel HTML-fil och en matchande tagg i rubriken för att skapa omdi­ri­ge­ring­ar. För att besökare på din webbplats ska in­for­me­ras om omdi­ri­ge­ring­en bör ett mot­sva­ran­de med­de­lan­de läggas in i HTML-do­ku­men­tet. Typiska exempel är rader som ”Vänta ett ögonblick. Du kommer att omdi­ri­ge­ras…”. En enkel do­mänomdi­ri­ge­ring via HTML-me­taupp­da­te­ring ser ut så här:

<meta http-equiv="refresh" content="10; url=http://www.example.com/">
html

Klienten uppmanas att omdi­ri­ge­ra domänen via me­ta­tag­gen http-equiv="refresh". Hur detta sker kan de­fi­nie­ras i in­ne­håll­sat­tri­bu­tet. I exemplet omdi­ri­ge­ras an­vän­dar­na till mål­do­mä­nen www.example.com efter tio sekunder.

Ja­va­Script-omdi­ri­ge­ring­ar

Ja­va­Script erbjuder en enkel möjlighet för omdi­ri­ge­ring­ar på kli­ent­si­dan. Men precis som med me­ta­tag­gen refresh bör Ja­va­Script-omdi­ri­ge­ring­ar endast användas i enskilda fall, eftersom detta skript­ba­se­ra­de språk inte stöds av alla webb­lä­sa­re på grund av sä­ker­hets­skäl. Ja­va­Script kan också skapa problem för webbcraw­lers och användare med aktiva NoScript-tillägg. Så här ser koden ut för en do­mänomdi­ri­ge­ring via Ja­va­Script:

<script> 
window.location.replace('http://www.example.com'); 
</script>
html

Det vik­ti­gas­te här är den tredje raden i koden. I ex­em­pel­ko­den används objektet window.location för att referera till den aktuella web­ba­dres­sen. Kommandot replace in­stru­e­rar webb­lä­sa­ren att dirigera an­vän­da­ren till mål­do­mä­nen som finns inom pa­ren­te­ser­na: www.example.com.

Gå till huvudmeny