Laat ik allereerst zeggen dat ik totaal geen kaas gegeten heb van .htaccess en mod_rewrites, heb het met de tutorial van Blanche geprobeerd maar kom er niet uit.

De .htaccess file staat in de root file van m'n website en ik wil 5 URL's herschrijven naar schone URL's die ik zelf heb aangegeven. De site gaat niet meer veranderen maar haalt wel dynamisch content op van de database maar de basis-urls blijven hetzelfde.

als volgt:


domain.nl/index.php		>	domain.nl/home/
domain.nl/index.php?id=2	>	domain.nl/het-bureau/
domain.nl/index.php?id=3	>	domain.nl/de-aanvoerder/
domain.nl/index.php?id=4	>	domain.nl/contact/
domain.nl/update.php		>	domain.nl/update/
domain.nl/portfolio.php	>	domain.nl/portfolio/


Ik heb nu dit in m'n .htaccess:


RewriteEngine On
RewriteRule index.php?id=2 /home/ [R]


Nu werkt dit niet, maar ik snap ten eerste niet waarom en zou daarnaast ook niet weten hoe het wel moet.. Met googlen kom ik niet veel verder..
Euhm? Heb je wel goed gekeken?
Dit staat bij de tut


RewriteEngine On
RewriteBase /
RewriteRule oud.php nieuw.php


Dus ik herschrijf dan nu oud.php (=index.php?id=2) naar nieuw.php (=/home/)
volgensmij moet je bij home de / beide keren weghalen
Isn't working:


RewriteEngine On
RewriteBase /
RewriteRule index.php?id=2 home [R]
Sander A op 18/03/2011 19:13:47

volgensmij moet je bij home de / beide keren weghalen


lijkt mij niet alles staat op de root van de server maar het zou wel kunnen
Ik vind die tutorials van blanche altijd zo overrated, nu blijkt ook weer waarom. Deze tutorial is veel beter (let op de verschillen). Zie ook bijvoorbeeld dit, dit of natuurlijk gewoon de officiƫle documentatie
Met de tut van Jasper kwam ik wat verder!

Ik heb nu:

RewriteEngine On
RewriteBase /


RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]

RewriteRule ^(.*?)$ index.php?id=$1 [L,QSA]


Alleen nu heb ik 1 probleem, ik krijg nu urls als: domein.nl/1 (de pagina ID)
maar dit moet worden: /home/

Hoe krijg ik dat voor elkaar?
Is er je nu al iets niet opgevallen?
Kennelijk, ik zie niet hoe ik dat in een rewrite krijg?

** EDIT **

Ik heb nu dit:


RewriteEngine On
RewriteBase /


RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]

RewriteRule ^(.*?)/$ index.php?id=$1 [L,QSA]
RewriteRule ^portfolio/$ portfolio.php [L, QSA]


Krijg nu een internal server error.. Anders wijst het systeem alles door naar index, terwijl twee pagina's afwijkend zijn namelijk portfolio en update. Hoe rewrite ik die afzonderlijk?


*** EDIT 2 ***
Na wat puzzelen begon ik het een beetje door te krijgen, thanks Karl!


RewriteEngine On
RewriteBase /


RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]

RewriteRule ^update/$ update.php [L]
RewriteRule ^portfolio/$ portfolio.php [L]
RewriteRule ^(.*?)/$ index.php?id=$1 [L,QSA]

Reageren