Mod Rewrite

  1. Inleiding
  2. Vereiste instellingen
  3. Basis van Mod Rewrite
  4. Zoekmachine vriendelijke urls
  5. Flags in een RewriteRule
  6. Voorwaarden stellen met RewriteCond
  7. Slotwoord en referenties
  8. Reacties op deze tutorial

Vereiste instellingen

Om gebruik te kunnen maken van de mod_rewrite module moet deze wel geinstalleerd en geactiveerd zijn. Standaard zal deze module wel geinstaleerd maar niet geactiveerd zijn. Ik zal dus eerst uitleggen hoe je dat kunt controleren en eventueel kunt aanpassen.

De makkelijkste manier om te controleren of de module geactiveerd is, is door in de phpinfo te kijken. Plaats onderstaande code in een leeg bestand, en voer het uit op je webserver.

Voorbeeld 1: phpinfo opvragen
Code
1
2
3
<?php
phpinfo
();
?>

Ga op zoek naar een kopje met apache erin en zoek het gedeelte met de Loaded Modules. Als in dit lijstje onder andere 'mod_rewrite' voorkomt, is de module geactiveerd en kun je hem zonder problemen gebruiken.

Staat 'mod_rewrite' er niet tussen, dan zal de module nog geactiveerd moeten worden. Deze instelling kunnen we aanpassen in het httpd.conf bestand. Als je te maken hebt met een webhost is de kans groot dat je dit niet zelf kunt aanpassen. Neem dan contact op met je host.

Om de mod_rewrite modulte te activeren moet je in httpd.conf op zoek gaan naar onderstaande regel:
Code
1
#LoadModule rewrite_module modules/mod_rewrite.so

Haal het # voor deze regel weg om de module te activeren. Vergeet niet om Apache te herstarten, anders zullen de wijzigingen geen effect hebben.

Mocht je deze regel niet kunnen vinden in je httpd.conf, dan betekent dat dat de module niet geinstalleerd is. Daartoe kun je de volgende regels neenemen tijdens het compilen van Apache:
Code
1
2
3
./configure
--enable-module=rewrite
--enable-shared=rewrite

Mocht je geen idee hebben hoe je dat moet doen, ga dan eens langs www.apache.org om te zien hoe je de mod_rewrite module kunt installeren.

Mocht je, ondanks dat de mod_rewrite module wel geinstalleerd en geactiveerd is, toch nog een Internal Server error krijgen als je deze methode toe probeer te passen, controleer dan nog eens de volgende instellingen.

In de httpd.conf zul je voor de directory waarin je de .htaccess plaatst (in dit voorbeeld de root) het volgende op moeten nemen:
Code
1
2
3
<Directory />
AllowOverride All
</Directory>

Dit bepaald wat voor informatie er in een .htaccess mag staan en zorgt er dus voor dat je rewrite informatie kunt opnemen.

Verder kun je in je .htaccess de volgende instelling opnemen, die overigens in de meeste gevallen standaard goed staat:
Code
1
Options +FollowSymLinks

Zonder dit ingeschakeld is het niet mogelijk om de mod_rewrite module te gebruiken.

Vorige Volgende