nl en de fi id nl nl nl nl nl en en nl nl en en nl nl nl en en nl en en nl nl en en nl it nl nl nl en en nl nl nl fi en nl nl en en en nl nl nl nl nl nl nl nl nl nl nl nl nl nl nl nl nl en nl en nl nl nl nl en nl uk nl pl nl zh nl mhr nl nl nl nl pl ta nl en en nl en en nl sv es nl en fr nl pt en nl en en nl nl en nl nl en nl nl nl en nl en nl en nl en nl nl en en nl en nl ta nl en nl en nl en nl nl en nl nl nl en nl en nl nl en nl en nl nl nl nl nl en nl fr en nl it pl en it de en en en nl nl en et en en en en en en en en nl en nl en nl
Domeinnaam Je adres op internet met extensies als .nl & .com. Mail Professioneel e-mailen met je eigen domein – veilig en reclamevrij. Mailarchivering Automatische en veilige archivering voor je bedrijf.
SSL-certificaten Bescherm je website optimaal dankzij versleuteling Microsoft 365 Je documenten altijd bij de hand met Office 365.
Websites voor beginners en professionals.
Sitebuilder Perfect voor beginners: zonder voorkennis je eigen website. Webshop Snel en professioneel online verkopen.
Snel, veilig en krachtig: hosting & WordPress van professionals voor professionals.
WordPress hosting In een handomdraai je eigen, veilige WordPress site. Hosting Perfect voor professionele en supersnelle websites. Hosting Mini Ons mini-hostingpakket – voor een mini-prijs.
WooCommerce Je eigen webshop maken met WordPress
Monitor het succes en verbeter de performance van je website
STRATO marketingRadar Het perfecte starterspakket voor online marketing. STRATO rankingCoach Snel en simpel een toppositie in zoekmachines als Google. STRATO listingCoach Verschijn met één klik in de belangrijkste online directory's.
STRATO adCoach Maak en beheer eenvoudig Google Ads-campagnes.
Sneller gaat niet: 100% merk-hardware voor virtual en dedicated systemen.
VPS Linux Krachtige Linux VPS met SSD-power & Plesk. VPS Windows VPS met véél RAM & Windows Datacenter-licentie. Cyber Protect Veiligheid dankzij professionele back-ups & anti-malware
Dedicated Server Linux Eigen hardware met root-rechten – voor veeleisende hosting. Dedicated Server Windows Merk-hardware met Administrator-toegang. ServerCloud Flexibele, schaalbare servers in de cloud.
Bestanden online opslaan & automatisch back-uppen naar de Europese cloud.
HiDrive Sla je bestanden op in de Europese cloud. HiDrive Business Veilig teamwork met je online harde schijf. HiDrive S3 De object storage voor je bedrijfsdata.
URL-rewriting: wat is het en hoe gaat het?
URL-rewrite in het kort
URL-rewriting en SEO (zoekmachineoptimalisatie)
URL-rewrite in het kort
Een URL ‘rewriten’ ofwel herschrijven doe je met een rewrite engine. Deze is een onderdeel van webserversoftware, waarmee je URL’s (Uniform Resource Locators) kunt omleiden. De bekendste rewrite engine is mod_rewrite van de Apache HTTP-server. Alternatieve webservers, zoals nginx of lighttpd, bieden vergelijkbare functies.
Een voorbeeld van een situatie waarin het handig is om een rewrite engine te gebruiken, is wanneer een complexe, dynamische URL (die bijvoorbeeld door een contentmanagementsysteem is aangemaakt) in een gebruiksvriendelijke URL moet worden omgezet. Dit wordt vaak gedaan omdat een technische URL als
moeilijk te begrijpen is voor menselijke gebruikers. Met een rewrite engine kun je dezelfde webpagina toegankelijk maken via een duidelijkere URL, zoals:
Een internetgebruiker kan de nieuw aangemaakte URL dus invoeren om naar de betreffende webpagina te gaan. Als een dergelijk verzoek bij de webserver binnenkomt, wordt de URL door de rewrite engine automatisch weer omgeschreven naar het schema dat binnen de server wordt gehanteerd: http://voorbeeld.com/a/index.php?title=paginatitel.
Op deze manier creëert de rewrite engine een soort abstractielaag tussen de URL's die de website intern gebruikt en de URL’s die zichtbaar zijn op het web. Dit maakt het mogelijk om − onafhankelijk van interne technische eisen − een gebruiksvriendelijke, uniforme adressering te bieden.
Intern kan het dynamische, geparametriseerde adres gebruikt blijven worden, terwijl bezoekers van je site een ogenschijnlijk statisch adres zien. Dit heeft als voordeel dat de extern gepresenteerde URL's geldig blijven; ook als je de interne bestandsstructuur van de website verandert.
Bovendien kun je als webbeheerder de rewrite engine gebruiken voor adresomleidingen, waarbij je specifieke voorwaarden kunt instellen. Zo is het mogelijk om een omleiding in te stellen op basis van de user agent ID of het IP-adres van de client. Zo kun je geotargeting implementeren of de website optimaliseren voor het apparaat van de bezoeker. Meestal wordt een 301-redirect gebruikt, die ervoor zorgt dat de zoekmachine − ondanks de parallel werkende mobiele websites of verschillende taalversies − altijd maar één websiteversie in de index opslaat.
De rewrite engine biedt diverse opdrachten voor het manipuleren van URL’s, die je op verschillende plaatsen in de webserversoftware als regels kunt invoeren. Zo kun je mod_rewrite, de rewrite engine van de Apache-webserver, gebruiken in een directory-container binnen httpd.conf, in een VirtualHost-sectie of in het .htaccess-bestand. In nginx noteer je URL-rewriting in het configuratiebestand /etc/nginx/nginx/nginx.conf. In lighttpd gebruik je het bestand /etc/lighttpd.conf in de vHost-configuratie.
Wil je bijvoorbeeld de dynamische URL http://example.com/a/index.php?title=paginatitel via een rewrite engine omschrijven naar de statische URL http://example.com/artikel/paginatitel, dan gebruiken de webservers Apache, nginx en lighttpd hiervoor verschillende opdrachten. Deze zetten we hieronder op een rij.
URL-rewrite in Apache: mod_rewrite
Om mod_rewrite in Apache te gebruiken, moet de rewrite engine geactiveerd worden met de aanwijzing RewriteEngine on. Hierop volgt de RewriteRule, die met behulp van zogenaamde reguliere expressies (‘regular expressions’, regex) de instructies voor het herschrijven van URL's definieert:
RewriteEngine on RewriteRule ^/artikel/(.*)$ /a/index.php?title=$1
Als de RewriteRule een omleiding definieert, bevat deze twee parameters: het zoekpatroon en het doelpatroon.
Zoekpatroon - Deze parameter beschrijft de URL's die moeten worden omgeleid. Een bepaalde voorwaarde wordt gedefinieerd in de vorm van een tekenreeks. Als aan deze voorwaarde is voldaan, vindt omleiding naar een URL plaats volgens het doelpatroon. In het voorbeeld staat het zoekpatroon in dit deel van de RewriteRule: ^/artikel/(.*
Doelpatroon - Deze parameter beschrijft de URL waarnaar wordt omgeleid. Als de omleiding op server-niveau is geconfigureerd, wordt de volledige URL vervangen. Op directory-niveau in het .htaccess-bestand of in httpd.conf wordt alleen het pad vanaf de huidige directory vervangen. In het voorbeeld staat het doelpatroon in dit deel van de RewriteRule: /a/index.php?title=$1.
In onderstaande tabel zie je een toelichting van de reguliere expressies in ons voorbeeld:
Geeft het begin van een string aan.
Geeft het einde van een string aan.
Een placeholder voor elke string binnen een URL. De haakjes slaan de string op in een variabele.
Een variabele waarmee kan worden teruggegrepen op de waarden die tussen de haakjes zijn opgeslagen.
De RewriteRule ^/artikel/(.*)$ /a/index.php?title=$1 legt dus de regel vast, dat bij alle URL’s die beginnen met de string /artikel/(.*), dit deel wordt omgeschreven naar het dynamische URL-schema /a/index.php?title=$1, waarbij $1 staat voor de string die bij de placeholder (.*) hoort.
Als een internetgebruiker de statische URL http://voorbeeld.com/artikel/paginatitel in de webbrowser invoert, schrijft de webserver dit om naar de dynamische URL http://voorbeeld.com/a/index.php?title=paginatitel via mod_rewrite. Dit gebeurt intern en is onzichtbaar voor de gebruiker. In dit geval komen de placeholder (.*) en variabele $1 overeen met de tekenreeks paginatitel.
Moet de URL-rewriting gekoppeld worden aan bepaalde opties die het gedrag van mod_rewrite sturen, dan zet je deze na de RewriteRule tussen vierkante haakjes en (als er meerdere opties gelden) scheid je ze met komma’s. Op deze manier kun je ook externe omleiding via HTTP-statuscode realiseren. De onderstaande tabel toont een aantal opties voor de RewriteRule. Op de officiële website van de Apache Software Foundation vind je een volledige lijst.
De flag [R] instrueert de webserver een externe omleiding via HTTP-statuscode 302 uit te voeren. Als een andere statuscode moet worden verzonden, wordt deze met een is-teken aan de flag toegevoegd (bijv.[R=301]).
Geeft de webserver de opdracht om HTTP-statuscode 403 (Forbidden) naar de webbrowser te verzenden.
Laat de webserver HTTP-statuscode 410 (Gone) naar de webbrowser sturen en markeert de betreffende pagina als niet meer beschikbaar.
Geeft de webserver opdracht om na de huidige RewriteRule geen volgende meer uit te voeren.
Bij het controleren of een URL voldoet aan de eis voor rewriting, wordt niet gelet op hoofdletters en kleine letters.
De volgende RewriteRule geldt alleen als de huidige voorwaarde is vervuld.
Op basis van een dergelijke optie kan je een externe omleiding via HTTP-statuscode als volgt realiseren:
RewriteEngine On RewriteRule ^oudepagina.html$ /nieuwepagina.html [R=301]
Naast RewriteRules kun je mod_rewrite gebruiken om zogenaamde RewriteConds te definiëren, waarmee websiteheerders aanvullende voorwaarden voor een URL-rewrite kunnen definiëren.
De RewriteCond staat vóór de RewriteRule en heeft deze syntaxis:
De teststring bevat over het algemeen zogenaamde servervariabelen, gedefinieerd door een procentteken en accolades, zoals %{HTTP_HOST}. In onderstaande tabel zie je een aantal servervariabelen.
Heeft betrekking op de client die wordt gebruikt voor servertoegang. De variabele wordt meestal gebruikt om verschillende webbrowsers te voorzien van een geoptimaliseerde website.
Heeft betrekking op de hostnaam en kan waarden bevatten als domein.com, subdomein.domein.com of het IP-adres.
Heeft betrekking op de geadresseerde poort (bijv. 80 voor HTTP of 443 voor HTTPS). De variabele stelt websitebeheerders in staat bezoekers om te leiden naar een beveiligde verbinding.
Heeft betrekking op het IP-adres van de gebruiker die verbinding maakt met de webserver. Deze variabele wordt soms gebruikt om spam te blokkeren.
Het volgende voorbeeld laat een RewriteCond zien, die een RewriteRule bindt aan het IP-adres van een gebruiker van de webserver:
Ook de nginx-webserver ondersteunt standaard URL-rewriting. Dit gebeurt eveneens met behulp van reguliere expressies. Om URL's te herschrijven, voeg je de rewrite-opdracht gewoon in een {[...] }-blok in; volgens de nginx-syntaxis. Dat doe je in het webserver-configuratiebestand /etc/nginx/nginx.conf:
location /artikel { rewrite ^/artikel/(.*)$ /index.php?title=$1 last; }
Met location /artikel geven websitebeheerders aan dat de URL-rewrite betrekking heeft op de subdirectory artikel. De reguliere rewrite-expressies zijn dezelfde als op de Apache-webserver en worden ingeleid met de opdracht rewrite. De flag last geeft aan dat het herschrijven intern moet gebeuren, en dus zonder omleiding. Als alternatief zijn er flags voor een tijdelijke of permanente omleiding:
URL's worden intern herschreven. Er is geen omleiding.
De gebruiker wordt tijdelijk doorgestuurd naar de nieuwe URL via een 302-redirect.
De gebruiker wordt permanent doorgestuurd naar de nieuwe URL via een 301-redirect.
Als je geen flag gebruikt, grijpt nginx automatisch terug op de HTTP-foutcode 500.
In lighttpd realiseer je een URL-rewrite met de functie url.rewrite-TYP. De placeholder TYP staat voor verschillende rewrite-configuratieopties:
Eenmalige URL-rewrite. Als het zoekpatroon is gevonden en de URL is herschreven volgens het doelpatroon, volgen geen andere rewrites meer.
In tegenstelling tot url.rewrite-once, kunnen bij url.rewrite-repeat meerdere rewrites na elkaar plaatsvinden.
Aangezien lighttpd voor URL-rewrites dezelfde reguliere expressies gebruikt als Apache, is de syntaxis in principe op dezelfde manier opgebouwd:
url.rewrite-once = ( "^/artikel/(.*)$" => "/index.php?title=$1" )
Als er een externe omleiding moet plaatsvinden − in plaats van een interne rewrite − gebruikt lighttpd niet de rewrite-module, maar een redirect-module. De URL’s gaan hierbij eerst door de rewrite-module en dan door de redirect-module.
De URL-rewrite in Microsoft IIS
Microsoft IIS (Internet Information Services) is een platform zonder native rewrite engine. Je kunt deze echter alsnog aan de webserver toevoegen met de module IIS URL Rewrite 2.0. Microsoft-gebruikers kunnen hun websitebezoekers dus ook voorzien van duidelijke URL's, zonder hiervoor de interne bestandsstructuur te hoeven veranderen. De URL-rewriting-extensie wordt direct na het downloaden geïntegreerd in de IIS Manager-interface. Daar kun je de RewritingRules via een grafische gebruikersinterface invoeren. IIS URL Rewrite 2.0 gebruikt eveneens reguliere expressies om URL-zoek- en doelpatronen te definiëren.
URL-rewriting en SEO (zoekmachineoptimalisatie)
Met een rewrite engine schrijf je geparametriseerde URL’s dus om naar begrijpelijke, gebruiksvriendelijke URL’s. Daarom worden de functies van mod_rewrite en de vergelijkbare implementaties in andere webserversystemen ook vaak in verband gebracht met SEO (zoekmachineoptimalisatie). Hierbij staat ter discussie of gebruiksvriendelijke URL’s daadwerkelijk voor een betere ranking zorgen. Duidelijk bewijs hiervoor ontbreekt namelijk. Desalniettemin verwachten we dat websitebeheerders profiteren van indirecte effecten. Omdat internetgebruikers in de zoekresultaten geen onbegrijpelijke parameters, maar de herschreven URL's zien, hebben ze een beter beeld van de pagina’s waar de links naartoe leiden. Rewriting kan dus meer vertrouwen creëren en er ook toe leiden dat meer gebruikers je site aanklikken.