Tips
Apache Mod_rewrite
Hoewel je in princiepe geen rewrite regels meer nodig hebt, zou je er nog wel een kunnen toevoegen. Bijvoorbeeld deze voor Apache mod_rewrite:
Code (php)
1
2
3
4
2
3
4
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
Het toevoegen van deze rewrite regel heeft als gevolg dat alle requests naar niet bestaande bestanden en mappen automatisch worden doorgestuurd naar index.php, waardoor het niet meer nodig is index.php op te nemen in de url. Onze url ziet er dan als volgt uit:
http://site.com/gastenboek/plaatsen
of
http://site.com/pagina/gastenboek/actie/plaatsen
Apache MultiViews
In apache is er nog een andere optie dan mod_rewrite om de urls een stukje netter te maken, namelijk mutiviews. Als multiviews in apache aanstaat, dan betekend dit dat als apache geen directory met de opgegeven naam vindt, hij opzoek gaat naar een bestand met die naam waarbij de extensie er niet toe doet. Op die manier kunnen wij onze url er als volgt uit laten zien:
http://site.com/index/gastenboek/plaatsen
of
http://site.com/index/pagina/gastenboek/actie/plaatsen
Apache multiviews via httpd.conf
Ga opzoek naar de volgende regel:
En voeg daar MultiViews aan toe, zo:
Vergeet vervolgens niet om Apache opnieuw op te starten!
Apache multiviews via htaccess
In het geval je geen toegang hebt tot de httpd.conf, kan je multiviews ook aanzetten via htaccess. Maak dan een htaccess bestand aan en plaats daar de volgende regel in:
Zend Framework
Zend Framework maakt ook gebruik van $_SERVER['PATH_INFO'] waardoor het mogenlijk is dit framework zonder mod_rewrite te gebruikten en toch nette urls te hebben.
Het kan zijn dat je de volgende code nodig hebt om dit te laten werken:
Code (php)
Vergeet vervolgens niet om het request object mee te geven aan de dispatcher: