Mod_rewrite is heel leuk, maar kan soms wel de site vertragen, dan kan je beter de mod_rewrite regelen met PHP.
Stap 1
Maak een .htacces-file aan, met daarin onderstaande code:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [NC,L]
Door deze code zal indien de file of de map niet bestaat alles doorgestuurd worden naar index.php.
Stap 2
In index.php moet je natuurlijk de url gaan uitlezen en parsen, dit kan je met behulp van onderstaande functie doen.
<?php
function parseUrl()
{
// remove trailing slashes
$qryString = trim($_SERVER['REQUEST_URI'], '/');
if(!empty($qryString))
{
// split into chunks
return explode('/', $qryString);
}
else
{
// no querystring provided, return default page
return array('insert_default_page');
}
}
?>
Uiteraard zal je deze functie aanpassen in functie van je website. Let wel op dat je alle links op je website nu absolute maakt, dus elke link start nu met /
Reacties
tijs schreef:
16/02/07
Voor alle duidelijkheid, in deze functie is er geen rekening gehouden met parameters, indien je dit nodig hebt kan je beter de paramaters opsplitsen door middel van een seperator, bijvoorbeeld /p/. Dan kan je in de functie een array returnen met als eerste element een array met daarin het deel voor de paramaters, en de parameters returnen in een tweede element.
Bort schreef:
16/02/07
Test ik deze avond nog uit, thanks!
Atea webdevelopment en Zoekmachine-optimalisatie schreef:
21/06/09
Waarom is het met PHP sneller?