Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen

Onderwerp: Mod RewriteRule

  1. #1
    Mod RewriteRule
    geregistreerd gebruiker
    253 Berichten
    Ingeschreven
    12/07/06

    Locatie
    Delft

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter

    Mod RewriteRule

    Ik gebruik in mijn website de volgende rewriterule:

    Code:
    RewriteEngine On
    
    RewriteRule ^.*\.png$|^.*\.jpg$|^.*\.js$|^.*\.css$|^.*\.gif$ - [L]
    
    RewriteRule ^(.*)/(.*)/ index.php?p=$1&s=$2
    Dit werkt prima. Nu wil ik echter de mogelijkheid nog 2 extra variabelen in de URL toe te voegen. Die twee laatste variabelen zijn dus niet noodzakelijk voor elke pagina, maar als toevoeging voor enkele pagina's. Na wat zoeken leek mij dit de oplossing:

    Code:
    RewriteRule ^(.*)/(.*)/(.*)/(.*)/ index.php?p=$1&s=$2&var1=$3&var2=$4
    RewriteRule ^(.*)/(.*)/(.*)/ index.php?p=$1&s=$2&var1=$3
    RewriteRule ^(.*)/(.*)/ index.php?p=$1&s=$2
    Als ik nu naar www.website.nl/test/test2/test3/test4/ surf, krijg ik de volgende output met print_r($_GET):

    Code:
    Array ( [p] => index.php/test2/test3 [s] => test4 )
    Hij neemt dus de eerste 3 variabele als 1 variabele in $p. Weet iemand hoe ik ze toch apart krijg?

    Alvast bedankt.

  2. #2
    Mod RewriteRule
    geregistreerd gebruiker
    462 Berichten
    Ingeschreven
    22/05/06

    Locatie
    Belgie

    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    26 Berichten zijn liked


    Ondernemingsnummer: 0812210395

    Een * in regular expression is greedy
    (.*)/(.*)/(.*) zal dus nooit gematched worden, omdat die tweede / en alles wat er achter komt gewoon mee met de eerste (.*) genomen wordt.

    Ofwel moet je een ? achter je * zetten zodat hij niet meer greedy is, ofwel moet je de .* vervangen door [^/]*, wat neerkomt op eender welk teken behalve een /. De laatste gaat normaal gezien sneller zijn omdat die geen backreference gebruikt, hoewel je dat verschil wsl toch niet zal merken.

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics