Mod_rewrite
Ik wil index.php?piet=1&sjaak=3 vervangen door index/1/3. Hoe doe ik dat?
Een veel ingewikkelder maar veel flexibeler oplossing is het gebruik maken van mod_rewrite. Deze module geeft je de beschikking over diverse configuratie directives die vertellen hoe een inkomende request "vertaald" (rewritten) moet worden naar een door jou te bepalen URI.
Een eenvoudig voorbeeld is om bijvoorbeeld de url /rewrite-test/index/1/2 te rewriten naar /rewrite-test/index.php?piet=1&sjaak=2
code:
RewriteEngine On
RewriteBase /rewrite-test/
RewriteRule ^index/([0-9]+)/([0-9]+)$ index.php?piet=$1&sjaak=$2
Je kunt dit natuurlijk zo gek maken als je zelf wilt. Een goed opgezette set rewriterules kan ook zorgen voor goede 'default'-afhandeling en shortcuts naar bepaalde pagina's. Zo zou je bijvoorbeeld een rewriterule kunnen maken die doorverwijst naar een search-engine als een url niet bestaat, of /user/piet doorverwijzen naar een profile.php?user=piet, etcetera. Alles bij elkaar genomen is het zeer zeker de moeite waard mod_rewrite te verkiezen boven MultiViews.
Voor meer informatie over het gebruik van mod_rewrite kun je het beste de URL Rewriting Guide en de mod_rewrite reference van Apache doornemen.
Inhoudsopgave
- HELP! Mijn POST en GET forms werken niet (meer)
- ... is not a valid MySQL resource index
- Mijn sessie-variabelen worden niet opgeslagen
- Mijn file-upload form werkt niet.
- Ik heb een multiple select of meerdere checkboxes,
- Escape problemen met PHP i.c.m. databases
- multiviews
- Mod_rewrite
- Hoe werkt dat GROUP BY nu eigenlijk?
- Bij een javascript-submit of drukken op enter word
- Spaties van een <input ... value=...> worden niet
- Help! die aggregate functies
- wordt nog toegevoegt
- Ik kan de fout echt niet vinden!