Mod Rewrite Top PHP tutorial

Het maken van zoekmachine vriendelijke URL's met behulp van Apache's mod_rewrite module

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. Vereiste instellingen
  3. Basis van Mod Rewrite
  4. Zoekmachine vriendelijke urls
  5. Flags in een RewriteRule
  6. Voorwaarden stellen met RewriteCond
  7. Slotwoord en referenties

 

19 reacties op 'Mod Rewrite'

PHP hulp
PHP hulp
0 seconden vanaf nu
 
Gesponsorde koppelingen
Kasper Isgek
Kasper Isgek
5 jaar geleden
 
0 +1 -0 -1
Thx! Was ik net naar op zoek (ook al staat er al eentje in de database hier).

p.s. Heb jij toevallig vakantie of zo? :/

Edit:
Bij flags met meerdere waarden, zoals [R, L] mag je denk ik geen spatie na de komma doen. Als ik dat doe met de flag [NC, L] krijg ik een interne serverfout (500), wanneer ik die spatie weghaal (dus [NC,L]) werkt het goed.


Edit:
Wat ik trouwens nog miste in je verder wederom prima tutorial waren de opties die aan moeten staan in het configuratiebestand van Apache (httpd.conf) voordat e.e.a. werkt: AllowOverride moet op All staan en Options moet de waarde +FollowSymLinks hebben. Als ik goed ge?nformeerd ben dan :)
Joren de Wit
Joren de Wit
5 jaar geleden
 
0 +1 -0 -1
Quote:
Bij flags met meerdere waarden, zoals [R, L] mag je denk ik geen spatie na de komma doen.
Dat klopt helemaal. Automatisme om na een komma een spatie te tikken denk ik. Aangepast.

Quote:
(...) waren de opties die aan moeten staan in het configuratiebestand van Apache (httpd.conf) voordat e.e.a. werkt (...)
Deze had ik er inderdaad (nog) niet in verwerkt, deze staan in de meeste gevallen standaard goed. Heb een stukje toegevoegd voor het geval dat het niet mocht werken bij lezers, dan kunnen ze deze instellingen doen.

ps. Ja, heb nu inderdaad vakantie en had eindelijk eens tijd om wat oude tuts af te maken. Deze heb ik trouwens wel nieuw geschreven, voornamelijk ook omdat ik nu zelf tegen het onderwerp aanliep. Dus ja, waarom na het uitzoeken kennis niet meteen delen ;)
Iltar van der berg
iltar van der berg
5 jaar geleden
 
0 +1 -0 -1
$rating++;

Heel duidelijk gemaakt thumbs up :)
Dit zijn het soort tutorials die we moeten hebben :)
Hipska BE
Hipska BE
5 jaar geleden
 
0 +1 -0 -1
dat is de tutorial die ik vorige week nodig had voor mijn .htaccess probleempjes :D

goede tutorial en mooi uitgelegd!
PHP Newbie
PHP Newbie
5 jaar geleden
 
0 +1 -0 -1
perfect! Niets op aan te merken, overduidelijk en netjes ;-)
Robert -
Robert -
5 jaar geleden
 
0 +1 -0 -1
Mooie en heldere Tut Blanche, net zoals al je al je voorgaande.
Frank
Frank
5 jaar geleden
 
0 +1 -0 -1
Wederom een schoonheid!

Verder bedankt voor een paar tips, kan ik m'n .htaccess-bestanden nog even fine-tunen. En natuurlijk ook bedankt voor de flags, ik gebruikte het al wel en het werkt ook prima, maar snapte er geen drol van... ;)

Met de juiste regular expression maak je al een beginnetje met het beveiligen van jouw website. Quotes, haakjes, spaties, etc. horen niet in een url te staan (een GET) en hoor je dus ook niet toe te staan. Op die manier voorkom je al zaken als SQL-injection en xss via een GET. Dit wil niet zeggen dat je dan klaar bent met beveiliging, maar het begin is er.

En over begin gesproken, ik begin altijd met het opzetten van alle mogelijke urls en dit op de juiste manier in .htaccess te zetten. De code komt dan later wel.
Joren de Wit
Joren de Wit
5 jaar geleden
 
0 +1 -0 -1
Bedankt allen, voor de complimenten :)

Quote:
En over begin gesproken, ik begin altijd met het opzetten van alle mogelijke urls en dit op de juiste manier in .htaccess te zetten. De code komt dan later wel.
Jep, dat probeer ik ook altijd. Heb pas geleden nog een website om moeten zetten en dus alle links moeten vervangen. Dat is geen pretje kan ik je zeggen.

Maar goed, daarnaast vind ik het altijd wel lastig om van tevoren al in te schatten wat voor urls je zult gaan gebruiken. Vaak voeg je tijdens het scripten nog wel eens een GETje hier of daar toe. Neemt natuurlijk niet weg dat je het het beste wel kunt proberen.
Arend a
Arend a
5 jaar geleden
 
0 +1 -0 -1
Wederom een uitstekende tutorial, maar er zou iets meer diepgang in kunnen.

Tips voor verbeteringen:
Schema's van
http://www.ilovejackdaniels.com/apache/mod_rewrite-cheat-sheet/
overnemen.

Documentatie:
Url Rewriting guide:
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Arend a
Arend a
5 jaar geleden
 
0 +1 -0 -1
En natuurlijk http://www.webforgers.net/mod-rewrite/.

De tut van bas over regex schiet erg tekort wat mij betreft:
http://www.phphulp.nl/php/tutorials/4/520/ is natuurlijk de betere ;)
Joren de Wit
Joren de Wit
5 jaar geleden
 
0 +1 -0 -1
Bedankt Arend voor de aanvullingen. Zodra ik tijd heb zal ik eens kijken of ik ze er in kan verwerken.

Wat betreft die tut over regexen, ik dacht dat ik al naar die van jou gelinkt had. Blijkt dat ik daar een foutje heb gemaakt, maar het was wel de bedoeling ;)
Henk
Henk
5 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteEngine On
RewriteBase /
RewriteRule ^tutorials/(.*)$ tutorials/$1/ [R]
RewriteRule ^tutorials/(.*)/$ tutorials.php?id=$1 [L]
Kan toch ook zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^tutorials/(.*)/?$ tutorials.php?id=$1 [L]
Joren de Wit
Joren de Wit
5 jaar geleden
 
0 +1 -0 -1
Dat kan inderdaad ook. Ik heb alleen die redirect regel gebruikt om deze mogelijkheid ook direct te verduidelijken.

Ik zal de andere oplossing nog even toevoegen...

Edit:
Zowel tips van Arend als Henk verwerkt :)
 
0 +1 -0 -1
Mooi dat er eindelijk eens een tutorial over is, gaat een hoop mensen helpen die googlen op "mod rewrite" omdat ze dat eens ergens gehoord hebben.
Tim van den Hof
Tim van den Hof
5 jaar geleden
 
0 +1 -0 -1
Strakke tutorial, had altijd al willen weten hoe mod_rewrite precies werkte want heel vaak waren het ?f TE uitgebreide tutorials ?f TE globaal. Deze is precies goed.

Heel erg bedankt!
Gr, Tim
Teun Beijers
Teun Beijers
3 jaar geleden
 
0 +1 -0 -1
Bij mij krijg ik het gewoon niet werkend, heb het al op meerdere eigen opgezette servers geprobeerd, nooit lukt het. Ik gebruik nu bijvoorbeeld xampp, alle goede instellingen staan daar standaard aan. Ik neem exact dat tutorial voorbeeld over voor zoekmachine vriendelijke urls, maar krijg gewoon een 404 error

edit: als ik 'm gewoon direct in localhost plaats(dus niet in aparte map) werkt het nu ineens wel
Joren de Wit
Joren de Wit
3 jaar geleden
 
0 +1 -0 -1
Als je de voorbeelden uit deze tutorial gebruikt, zul je de .htaccess inderdaad wel in de root moeten plaatsen (zoals je zelf ook al uitgevonden hebt). Als je de .htaccess in een submap plaatst, zul je de RewriteBase moeten aanpassen, zodat deze overeenkomt met het gedeelte van de url dat naar de submap verwijst...
Rick de Graaff
Rick de Graaff
1 maand geleden
 
0 +1 -0 -1
SUPER HANDIG! Nu weet ik weer wat meer hierover en hoe ik het moet maken enzo.
Hartstikke bedankt joh!

Om te reageren heb je een account nodig en je moet ingelogd zijn.