Mod_rewrite

We gaan beginnen met het eerste gedeelte: .htaccess. Dit ziet er moeilijk uit, maar is het zeker niet. Maak een nieuw bestand aan in je editor, gooi het helemaal leeg dat je echt een leeg bestandje hebt. Nu zet je bovenaan – om mod_rewrite te activeren:

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


Om de basis te stellen op de root, voegen we daar nog een regel aan toe:

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


Dat is alvast geopend. We willen natuurlijk dat bestaande bestanden gewoon te bereiken zijn. Dat doen we door een paar regels aan de .htaccess toe te voegen, zo ziet het er nu uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
RewriteEngine On
RewriteBase /

# Bestaande bestanden of mappen uitsluiten
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]


Je ziet nu: bestaande bestanden worden naar zichzelf doorgestuurd. Dat zorgt er alvast voor dat we daar niet mee in de knoop komen.

Het volgende is ook niet zo moeilijk. Nu willen we natuurlijk het deel achter je domeinnaam naar de normale parameters ?parameter=value&parameter2=value e.d. rewriten. Maar nu komt het: we willen het zo variabel en los mogelijk houden, en dat gaat niet als we iedere parameter weer apart gaan rewriten. Daarom doen we het zo; we rewriten alles achter het domein naar één parameter. Zo komt alles achter http://www.jouwdomein.nl/ dus in die parameter te zitten. Waarom? Dat zul je straks zien. Onze .htaccess gaat er nu zo uit zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
RewriteEngine On
RewriteBase /

# Bestaande bestanden of mappen uitsluiten
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]

RewriteRule ^(.*?)$ $1 [L]
# Alles naar n parameter
RewriteRule ^(.*?)$ index.php?p=$1 [L,QSA]


We zijn nu klaar, sla dit bestandje op als .htaccess (meer niet! – vergeet niet om ‘all formats’ o.i.d. te selecteren, anders zou er .htaccess.php of zo kunnen komen te staan en dan werkt het niet!).

Edit:
Let er nu wel op, dat CSS-bestand en plaatjes (die door HTML geïnclude worden, dus niet door PHP!) het pad van de URL volgen. Ze zullen dus niet goed terecht komen als je plaatjes doodgewoon images/plaatje.png zijn. Hij plakt dat dan achter de URL en dat gaat niet werken. Daarom kun je het zo oplossen: /images/plaatje.png. Met de eerste / geef je aan dat er vanuit de root gewerkt moet worden. Wat je ook kunt doen is: http://www.jedomein.nl/images/plaatje.png - oftewel het absolute pad opgeven. Ik prefereer de eerste manier, maar dat is aan jou ;).

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Hoe ziet de URL eruit?
  3. Mod_rewrite
  4. Van één naar oneindig
  5. Afsluiting en bronnen

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.