HTACCES gebruiken

Om deze URL rewriter te kunnen gebruiken, is een klein stukje Apache nodig. Dit betekent heel simpel dat alle URI requests ( alle requests vanaf je root ) door verwezen kunnen worden.

Om te beginnen zullen we moeten zeggen dat de rewriteEngine aan gezet moet worden, oftewel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteEngine On


Vervolgens willen we alle URI requests verwerken MITS het niet om een bestand ( .jpg, .css etc ) of map gaat.

We geven dus condities op waarin dit mee gegeven kan worden. Zo`n conditie ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f


Wat hier letterlijk staat is:
conditie (gaat om) {vraag naar bestand} -(van het type)

De REQUEST_FILENAME is de dispatcher van Apache. Mocht de URI_REQUEST een bestand ( f ) zijn, wordt er niet aan de voorwaarde voldaan. Een bestand zou niet meer toegankelijk zijn nu. Dit lossen we op door er een negatieve van te maken ( - ). Dus -f is geen file. alleen f zou wel een file zijn.

Als het dus niet om een -s of een -l of een -d of -f gaat, kunnen we een regel toepassen.

Een regel in ons geval zal iets simpels zijn als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


We geven hier 2 regels op. RewriteRule spreekt voor zich. Vervolgens zeggen we dat als we een URI REQUEST zien, het moet beginnen met .*. Het dakje (^) betekent dat de voorwaarde wordt toegepast aan het begin van de URI REQUEST. Het $ betekent dat het om het einde moet gaan.

Laten we voor ons gemak eens uitgaan van het volgende:

1. www.domein.nl/
2. www.domein.nl/test

Als we de HTACCESS zouden gebruiken, zou in het eerste geval niets gebeuren. Dit omdat er geen URI_REQUEST plaatsvindt en we dus gewoon op onze root zitten, echter bij de 2e krijgen we wel een request. Namelijk: test.

Als we nu alle voorwaarden doorlopen ( is het niet een bestand en ook geen map etc ) dan rerouten we de request naar onze root. Oftewel 1.

We zitten nu dus weer op 1. Maar, onze HTACCES is nog niet klaar, want vervolgens stellen we dat we ook naar onze index.php moeten.

Kort gezegd betekent dit hele verhaal dat we index.php weg filteren, maar alle requests ( zolang het niet om een f,s,d en l gaat) rerouten naar de root. Dus eigenlijk de index.php, maar die filteren we lekker weg ;)

« Lees de omschrijving en reacties

Inhoudsopgave

  1. HTACCES gebruiken
  2. De index.php maken
  3. De URL class schrijven
  4. De URL class af maken
  5. Ter afsluiting de code

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.