Det finns många alternativ för att omdirigera domäner eller underdomäner till en annan del av din webbplats eller till en extern adress. Omdirigeringar utförs ofta via .htaccess, PHP-skript, HTML-metataggar och JavaScript.

Vad används domänomdirigeringar till?

Omdirigeringar används för att informera servrar om att webbplatsinnehåll har flyttats från en URL till en annan. Detta är nödvändigt när den ursprungliga webbadressen är målet för en inkommande länk, har sparats på en användares dator eller kan ha en framträdande position i sökmotorernas resultatsidor (SERP). I detta fall meddelar omdirigeringen webbläsaren eller webbcrawlern att innehållet har flyttats och ger användaren en länk till den nya adressen istället. Utan omdirigeringar skulle webbplatsbesökare möta en 404-felsida istället för den webbplats de söker efter.

Detta är något som kommersiella webbprojekt särskilt vill undvika. Onlinebutiker erbjuder ett ständigt föränderligt sortiment av produkter som visas på en mängd olika webbsidor. När en artikel inte längre är tillgänglig vidarebefordras potentiella kunder till en sida med liknande produkter. På så sätt kan du effektivt styra besökarflöden och minimera avvisningsfrekvensen.

När du ställer in en domänomdirigering kan du också göra samma innehåll tillgängligt på olika webbadresser. Alla alternativa adresser omdirigeras helt enkelt till önskad webbplatsdomän, oberoende av den specifika URL eller sökväg som användarna anger.

Vilka typer av domänomdirigeringar finns det?

Man skiljer vanligtvis mellan omdirigeringar på klientsidan och omdirigeringar på serversidan. Vid omdirigeringar på serversidan överförs motsvarande HTTP-statuskoder till användaragenter (webbläsare eller webbcrawlers). När det gäller omdirigeringar på klientsidan ser det lite annorlunda ut. Dessa utförs utan någon form av svar, vilket innebär att inga statuskoder utfärdas. Det är därför det senare inte stöds av alla användaragenter. Denna olägenhet kan ibland leda till situationer där besökare stannar kvar på den ursprungliga sidan och inte vidarebefordras någonstans. Nackdelar som dessa är anledningen till att server-sidan ofta föredras för omdirigeringar. Klient-sidan bör endast användas när server-sidan har uteslutits av tekniska skäl.

En annan typ av domänomdirigering är den transparenta eller osynliga omdirigeringen. Med denna typ av omdirigering ändras inte URL:en. När det gäller domänomdirigeringar med maskering ändras inte den URL som visas för användaren, även om klienten har vidarebefordrats till en annan domän och visas innehållet på en annan webbsida. Eftersom denna typ av vidarebefordran kan orsaka problem med indexering och hur URL:en visas i webbläsaren rekommenderas den dock inte om inte vissa begränsningar finns på plats.

Omdirigeringar på serversidan

I de flesta fall utförs omdirigeringar av domäner på serversidan via konfigurationsfilen .htaccess eller ett PHP-skript. Dessa metoder gör det möjligt att individuellt definiera vilken HTTP-statuskod som ska visas för användaragenten. Detta gör det möjligt för webbplatsoperatörer att markera domänomdirigeringar som antingen permanenta eller tillfälliga. HTTP-statuskoderna 301 och 302 används för detta.

  • 301 – Permanent flyttad: Den begärda resursen är nu permanent tillgänglig under den omdirigerade URL:en. Den gamla URL:en kommer från och med nu att vara ogiltig. En 301-omdirigering krävs här.
  • 302 – Tillfälligt flyttad: Den begärda resursen är tillgänglig under den omdirigerade URL:en. Till skillnad från 301-koden förblir den ursprungliga URL:en giltig.

Om HTTP-statuskoden inte är uttryckligen definierad, utfärdar webbservern statuskoden 302 under en omdirigering på serversidan. Detta är inte alltid nödvändigt, så det är bäst att manuellt ange önskad statuskod för varje omdirigering, eftersom detta minskar risken för indexeringsfel, såsom URL-kapning. Till skillnad från 301-omdirigeringen informerar 302-statuskoden webbcrawlers om att den ursprungliga URL:en ska förbli indexerad. Om detta är avsett att vara permanent konkurrerar omdirigeringsadressen med omdirigeringsmålet i sökmotorindexet.

.htaccess omdirigering

.htaccess är en konfigurationsfil för Apache-webbservrar. Den används för att skriva över centrala konfigurationer på katalognivå. Denna fil gör det möjligt för webbplatsoperatörer att utföra katalogspecifika inställningar för domäner och deras underkataloger. En funktion hos .htaccess-filen är server-side domänomdirigeringar av enskilda adresser till andra URL:er.

Du kan ställa in en domänomdirigering med hjälp av kod i .htaccess-filen. När en .htaccess-fil med följande kod har placerats i huvudkatalogerna omdirigeras förfrågningar till den ursprungliga domänen på serversidan till domänen www.example.com:

Redirect 301 / http://www.example.com/
apacheconf

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 omdirigeras. I exemplet ovan omdirigeras allt innehåll. Det sista steget utförs när den fullständiga destinations-URL:en omdirigeras till användaragentens URL: http://www.example.com.

Denna metod gör det möjligt att omdirigera enskilda filer. Följande kod visar en .htaccess-omdirigering från en webbplats till en annan:

Redirect 301 /directory/example-document.html http://www.example.com/example.html
apacheconf

Efter att HTTP-statuskoden 301 har hanterats namnges filens katalogväg, som ska omdirigeras permanent (/directory/example-document.html), och omdirigerings-URL:en (http://www.example.com/example.html).

Så här skulle den permanenta omdirigeringen 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]
apacheconf

I kodrad 01 aktiveras Apache-webbserverns mod_rewrite-modul med kommandot RewriteEngine On. Därefter följer ett RewriteRule med sökvägen till omdirigeringsfilen och måladressen. Caret- och dollartecknen markerar början och slutet på sökvägen, och L märker den sista mod rewrite-regeln för motsvarande begäran. R=301 vidarebefordrar HTTP-status 301.

När du konfigurerar en domänomdirigering via .htaccess är det viktigt att komma ihåg att felaktiga inmatningar kan få allvarliga konsekvenser för webbplatsens funktion. Eftersom dessa ändringar träder i kraft direkt efter att du har sparat .htaccess-filen bör konfigurationerna alltid testas noggrant.

PHP-omdirigeringar

En domänomdirigering kan inte bara göras via .htaccess-konfiguration, utan också genom ett kommando i ett PHP-skript (t.ex. i index.php). Följande kod visar en permanent omdirigering till den fiktiva måladressen www.example.com:

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

Vid vidarebefordran via PHP-skript definieras den avsedda HTTP-statuskoden genom funktionen header i den andra raden av koden. I det här exemplet ska en permanent 301-omdirigering utföras. Eftersom omdirigeringar på serversidan normalt utförs på tillfällig basis måste aktiva åtgärder vidtas för att utföra permanenta omdirigeringar via statuskoden 301. Vid permanenta omdirigeringar registreras även domänomdirigeringens måladress med header. Omdirigeringen i detta exempel går sedan till adressen http://www.example.com. Funktionen exit i rad 04 i koden avslutar skriptet och förhindrar att efterföljande kodrader exekveras. För att omdirigeringar ska fungera via PHP-skript måste kodblocket finnas i början av HTML-sidan. Detta förhindrar att servern överför HTML-innehåll till omdirigeringssidan.

Omdirigeringar på klientsidan

Om det av tekniska skäl inte är möjligt att genomföra en omdirigering av domänen på serversidan, har webbplatsoperatörer möjlighet att använda lösningar på klientsidan. HTML-metataggen refresh och JavaScript är tillgängliga för detta. Nackdelen med omdirigeringar på klientsidan är att servrarna inte levererar HTTP-statuskoder till begärande webbläsare eller webbcrawlers, vilket innebär att de inte uttryckligen informeras om omdirigeringen. Dessutom stöds inte omdirigeringar på klientsidan av alla användaragenter, vilket innebär att det finns en risk att inte alla webbplatsbesökare omdirigeras.

Omdirigeringar på klientsidan har en negativ inverkan på sökmotorindexeringen. Explicit uteslutning från indexering genom HTTP-statuskod 301 sker inte med omdirigeringar på klientsidan. Detta kan leda till att omdirigeringsdomäner konkurrerar med måldomäner när det gäller sökmotorrankning. Till skillnad från omdirigeringar på serversidan, som i stort sett förblir osynliga för användarna, är omdirigeringar på klientsidan alltid förknippade med fördröjningar, vilket vissa användare kan märka.

Vidarebefordran via HTML meta refresh

HTML-metaredirektioner implementeras genom metataggar med attributet http-equiv. Allt som behövs för detta är en enkel HTML-fil och en matchande tagg i rubriken för att skapa omdirigeringar. För att besökare på din webbplats ska informeras om omdirigeringen bör ett motsvarande meddelande läggas in i HTML-dokumentet. Typiska exempel är rader som ”Vänta ett ögonblick. Du kommer att omdirigeras…”. En enkel domänomdirigering via HTML-metauppdatering ser ut så här:

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

Klienten uppmanas att omdirigera domänen via metataggen http-equiv="refresh". Hur detta sker kan definieras i innehållsattributet. I exemplet omdirigeras användarna till måldomänen www.example.com efter tio sekunder.

JavaScript-omdirigeringar

JavaScript erbjuder en enkel möjlighet för omdirigeringar på klientsidan. Men precis som med metataggen refresh bör JavaScript-omdirigeringar endast användas i enskilda fall, eftersom detta skriptbaserade språk inte stöds av alla webbläsare på grund av säkerhetsskäl. JavaScript kan också skapa problem för webbcrawlers och användare med aktiva NoScript-tillägg. Så här ser koden ut för en domänomdirigering via JavaScript:

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

Det viktigaste här är den tredje raden i koden. I exempelkoden används objektet window.location för att referera till den aktuella webbadressen. Kommandot replace instruerar webbläsaren att dirigera användaren till måldomänen som finns inom parenteserna: www.example.com.

Gå till huvudmeny