Er zijn veel mogelijkheden om domeinen of subdomeinen door te verwijzen naar een ander deel van uw website of naar een extern adres. Doorverwijzingen worden vaak uitgevoerd via .htaccess, PHP-script, HTML-metatags en JavaScript.

Waarvoor worden domeinomleidingen gebruikt?

Omleidingen worden gebruikt om servers te informeren dat de inhoud van een website van de ene URL naar de andere is verplaatst. Dit is nodig wanneer het oorspronkelijke webadres de bestemming is van een inkomende link, is opgeslagen op de computer van een gebruiker of een prominente positie zou kunnen innemen in de resultatenpagina’s van zoekmachines (SERP’s). In dit geval geeft de redirect aan de browser of webcrawler door dat de inhoud is verplaatst, waardoor de gebruiker in plaats daarvan een link naar het nieuwe adres krijgt. Zonder redirects zouden websitebezoekers een 404-foutpagina te zien krijgen in plaats van de site die ze zoeken.

Dit is iets wat vooral commerciële webprojecten willen vermijden. Online winkels bieden een voortdurend wisselend assortiment aan producten die op verschillende webpagina’s worden weergegeven. Zodra een artikel niet meer beschikbaar is, worden potentiële klanten doorgestuurd naar een pagina met vergelijkbare producten. Zo kunt u bezoekersstromen efficiënt sturen en het bouncepercentage minimaliseren.

Wanneer u een domeinomleiding instelt, kunt u dezelfde inhoud ook beschikbaar maken op verschillende webadressen. Alle alternatieve adressen worden eenvoudigweg omgeleid naar het gewenste websitedomein, ongeacht de specifieke URL of het pad dat gebruikers invoeren.

Welke soorten domeinomleidingen zijn er?

Er wordt over het algemeen onderscheid gemaakt tussen client-side en server-side redirects. Bij server-side domeinredirects worden de bijbehorende HTTP-statuscodes doorgegeven aan user agents (browsers of webcrawlers). Bij client-side redirects ligt dat iets anders. Deze worden uitgevoerd zonder enige vorm van respons, wat betekent dat er geen statuscodes worden afgegeven. Daarom wordt deze laatste methode niet door alle user agents ondersteund. Dit ongemak kan soms leiden tot situaties waarin bezoekers op de oorspronkelijke pagina blijven en nergens naartoe worden doorgestuurd. Vanwege dit soort nadelen wordt vaak de voorkeur gegeven aan server-side omleidingen. Client-side oplossingen mogen alleen worden gebruikt wanneer server-side domeinomleidingen om technische redenen niet mogelijk zijn.

Een ander type domeinomleiding is de transparante of onzichtbare omleiding. Bij dit type omleiding verandert de URL niet. Bij domeinomleidingen met maskering wordt de URL die aan de gebruiker wordt getoond niet gewijzigd, hoewel de klant is doorgestuurd naar een ander domein en de inhoud van een andere webpagina te zien krijgt. Aangezien dit type doorsturen echter problemen kan veroorzaken met de indexering en de manier waarop de URL in de browser wordt weergegeven, wordt het niet aanbevolen, tenzij er bepaalde beperkingen gelden.

Server-side omleidingen

In de meeste gevallen worden domeinomleidingen aan de serverzijde uitgevoerd via het configuratiebestand .htaccess of een PHP-script. Met deze methoden kan individueel worden bepaald welke HTTP-statuscode aan de user agent moet worden weergegeven. Zo kunnen websitebeheerders domeinomleidingen als permanent of tijdelijk markeren. Hiervoor worden de HTTP-statuscodes 301 en 302 gebruikt.

  • 301 – Permanent verplaatst: De gevraagde bron is nu permanent beschikbaar onder de omgeleide URL. De oude URL blijft vanaf dit moment ongeldig. Hier is een 301-omleiding nodig.
  • 302 – Tijdelijk verplaatst: De gevraagde bron is beschikbaar onder de omgeleide URL. In tegenstelling tot de 301-code blijft de oorspronkelijke URL geldig.

Als de HTTP-statuscode niet expliciet is gedefinieerd, geeft de webserver de 302-statuscode af tijdens een server-side omleiding. Dit is niet altijd nodig, dus u kunt het beste voor elke omleiding handmatig de gewenste statuscode invoeren. Dit helpt namelijk om de kans op indexeringsfouten, zoals URL-kaping, te verkleinen. In tegenstelling tot de 301-omleiding, informeert de 302-statuscode webcrawlers dat de oorspronkelijke URL geïndexeerd moet blijven. Als dit permanent bedoeld is, concurreert het omleidingsadres met de omleidingsbestemming in de index van de zoekmachine.

.htaccess omleiding

.htaccess is een configuratiebestand voor Apache-webservers. Het wordt gebruikt om centrale configuraties op directoryniveau te overschrijven. Met dit bestand kunnen websitebeheerders directory-specifieke instellingen uitvoeren voor domeinen en hun subdirectories. Een functie van het .htaccess-bestand is het server-side doorverwijzen van individuele adressen naar andere URL’s.

U kunt een domeinomleiding instellen met behulp van code in het .htaccess-bestand. Zodra een .htaccess-bestand met de volgende code in de hoofdmappen is geplaatst, worden verzoeken voor het oorspronkelijke domein aan de serverzijde omgeleid naar het domein www.example.com:

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

Deze regel code begint met redirect 301 en bepaalt welke HTTP-statuscode de server moet afgeven. Daarna volgt het pad naar de inhoud die moet worden omgeleid. In het bovenstaande voorbeeld wordt alle inhoud omgeleid. De laatste stap wordt uitgevoerd wanneer de volledige bestemmings-URL wordt omgeleid naar de URL van de user agent: http://www.example.com.

Met deze methode kunnen individuele bestanden worden omgeleid. De volgende code toont een .htaccess-omleiding van de ene website naar de andere:

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

Nadat de HTTP-statuscode 301 is afgehandeld, worden het pad naar de map van het bestand dat permanent moet worden omgeleid (/directory/example-document.html) en de omleidings-URL (http://www.example.com/example.html) benoemd.

Zo zou de permanente omleiding eruitzien op een Apache-server met een actieve mod_rewrite-module:

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

In coderegel 01 wordt de mod_rewrite-module van de Apache-webserver geactiveerd met het commando RewriteEngine On. Daarna volgt een RewriteRule met het pad van het omleidingsbestand en het bestemmingsadres. Caret- en dollarteken symbolen markeren het begin en het einde van het pad, en L labelt de laatste mod rewrite-regel voor het bijbehorende verzoek. R=301 stuurt de HTTP-status 301 door.

Bij het configureren van een domeinomleiding via .htaccess is het belangrijk om in gedachten te houden dat onjuiste invoer ernstige gevolgen kan hebben voor de werking van een website. Aangezien deze wijzigingen direct van kracht worden nadat u het .htaccess-bestand hebt opgeslagen, moeten configuraties altijd grondig worden getest.

PHP-omleidingen

Een domeinomleiding kan niet alleen worden uitgevoerd via de .htaccess-configuratie, maar ook via een commando in een PHP-script (bijvoorbeeld in index.php). De volgende code toont een permanente omleiding naar de fictieve bestemmings-URL www.example.com:

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

Bij het doorsturen via een PHP-script wordt de beoogde HTTP-statuscode gedefinieerd via de functie header in de tweede regel van de code. In dit voorbeeld moet een permanente 301-omleiding worden uitgevoerd. Aangezien omleidingen aan de serverzijde normaal gesproken tijdelijk worden uitgevoerd, moeten er actieve maatregelen worden genomen om permanente omleidingen via de 301-statuscode uit te voeren. Bij permanente omleidingen wordt ook het bestemmingsadres van de domeinomleiding geregistreerd met header. De omleiding in dit voorbeeld gaat dan naar het adres http://www.example.com. De functie exit in regel 04 van de code beëindigt het script en voorkomt dat een volgende regel code wordt uitgevoerd. Om omleidingen via PHP-script te laten werken, moet het codeblok aan het begin van de HTML-pagina staan. Dit voorkomt dat de server HTML-inhoud naar de omleidingspagina overbrengt.

Omleidingen aan de kant van de klant

Als het om technische redenen niet mogelijk is om een domeinomleiding aan de serverzijde uit te voeren, kunnen websitebeheerders gebruikmaken van oplossingen aan de clientzijde. Hiervoor zijn zowel de HTML-metatag refresh als JavaScript beschikbaar. Het nadeel van omleidingen aan de clientzijde is dat servers geen HTTP-statuscodes verstrekken aan verzoekende browsers of webcrawlers, waardoor deze niet expliciet op de hoogte worden gesteld van de omleiding. Bovendien worden client-side omleidingen niet door alle user agents ondersteund, waardoor het risico bestaat dat niet alle websitebezoekers worden omgeleid.

Client-side redirects hebben een negatief effect op de indexering door zoekmachines. Expliciete uitsluiting van indexering via de HTTP-statuscode 301 vindt niet plaats bij client-side redirects. Dit kan ertoe leiden dat redirect-domeinen concurreren met bestemmingsdomeinen als het gaat om de rangschikking in zoekmachines. In tegenstelling tot server-side redirects, die grotendeels onzichtbaar blijven voor gebruikers, gaan client-side redirects altijd gepaard met vertragingen, die sommige gebruikers uiteindelijk kunnen opmerken.

Doorsturen via HTML meta refresh

HTML meta-omleidingen worden geïmplementeerd via meta-tags met het attribuut http-equiv. Het enige wat hiervoor nodig is, is een eenvoudig HTML-bestand en een bijpassende tag in de header voor het maken van omleidingen. Om bezoekers van uw website op de hoogte te brengen van de omleiding, moet er een overeenkomstige melding worden ingesteld in het HTML-document. Typische voorbeelden zijn regels als ‘Even geduld a.u.b. U wordt omgeleid…’. Een eenvoudige domeinomleiding via HTML meta refresh ziet er als volgt uit:

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

De klant wordt gevraagd om het domein om te leiden via de metatag http-equiv="refresh". Hoe dit gebeurt, kan worden gedefinieerd in het inhoudsattribuut. In het voorbeeld worden gebruikers na tien seconden omgeleid naar het doeldomein www.example.com.

JavaScript-omleidingen

JavaScript biedt een eenvoudige mogelijkheid voor domeinomleidingen aan de clientzijde. Net als bij de meta-tag refresh mogen JavaScript-omleidingen echter alleen per geval worden gebruikt, omdat deze op scripts gebaseerde taal vanwege veiligheidsoverwegingen niet door elke webbrowser wordt ondersteund. JavaScript kan ook problemen veroorzaken voor webcrawlers en gebruikers met actieve NoScript-add-ons. Zo ziet de code voor een domeinomleiding via JavaScript eruit:

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

Het belangrijkste hier is de derde regel code. In de voorbeeldcode wordt het object window.location gebruikt om te verwijzen naar het huidige websiteadres. Het commando replace geeft de browser de opdracht om de gebruiker door te sturen naar het domein dat tussen de haakjes staat: www.example.com.

Ga naar hoofdmenu