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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteEngine On
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Options Indexes FollowSymLinks


En voeg daar MultiViews aan toe, zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Options Indexes FollowSymLinks MultiViews


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Options MultiViews


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$request
=new Zend_Controller_Request_Http();
$request->setBaseUrl('/index.php');
$request->setPathInfo(substr($request->getRequestUri(), strlen($request->getBaseUrl())));
?>


Vergeet vervolgens niet om het request object mee te geven aan de dispatcher:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$frontController
->dispatch($request);
?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Hoe werkt het?
  3. Tips

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.