Toon posts:

[mode_rewrite] Rewrite van meer dan 9 argumenten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,
Ik loop al een aantal dagen met dit probleem en mijn laatste hoop is gevestigd op jullie :)

Bij het maken van een shop maak ik gebruik van de mod_rewrite module en een .htaccess file om mijn urls te herschrijven naar 'mooie' urls. Zo wordt bijvoorbeeld

code:
1
mijnwebsite.com/Products/groep1/


herschreven naar het volgende url

code:
1
mijnwebsite.com?page=Products&group=groep1


Tot zover geen problemen ;)

Echter, in het scherm kunnen een aantal keuzes gemaakt worden die ik allemaal dmv een HTTP-GET request ophalen. Zo kan het voorkomen dat wanneer een gebruiker veel optionele keuzes maakt, de url er alsvolgt uitziet:

code:
1
mijnwebsite.com/Products/groep1/breedte/3/hoogte/2/diepte/4/extra/1


Om de bovenstaande url te herschrijven, gebruik ik dan de volgende regexp:
code:
1
RewriteRule ^Products(\/([A-Za-z0-9_]))?(\/breedte\/([A-Za-z0-9_]))?(\hoogte\//([A-Za-z0-9_]))?(\/diepte\/([A-Za-z0-9_]))?(\/extra\/([A-Za-z0-9_]))? index.php?productgroup=$1&hoogte=$3&hoogte=$5 etc..

Echter, bij veel keuzes is echter het maximaal aantal submatches (9) bereikt, waardoor het niet meer mogelijk is deze submatches te herschrijven. In mijn zoektocht naar een oplossing hiervoor kwam ik RewriteMap tegen, waarbij het mogelijk is om bijvoorbeeld met een perl-script de url te herschrijven. Echter, RewriteMap kan niet gebruikt worden vanuit een .htaccess file en ik wil voor dit probleem de apache config files niet aanpassen.

Edit: titel moet natuurlijk [mod_rewrite] ipv [mode_rewrite] :)

Verwijderd

Ik zou de rewrite gewoon gebruiken om van www.site.nl/Product/een/twee/drie www.site.nl/app.php?get=Product/een/twee/drie te maken en vervolgens det get var exploden ofzo zodat je een array krijgt en dan verder parsen

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Verwijderd schreef op donderdag 31 mei 2007 @ 15:26:
Ik zou de rewrite gewoon gebruiken om van www.site.nl/Product/een/twee/drie www.site.nl/app.php?get=Product/een/twee/drie te maken en vervolgens det get var exploden ofzo zodat je een array krijgt en dan verder parsen
Ja, of al je requests redirecten naar een enkel script dat de PATH_INFO gebruikt om te bekijken wat er getoond moet worden.

Rustacean


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
Manuzhai schreef op donderdag 31 mei 2007 @ 16:29:
[...]
Ja, of al je requests redirecten naar een enkel script dat de PATH_INFO gebruikt om te bekijken wat er getoond moet worden.
volgens mij bedoelen jullie hetzelfde

trouwens doe ik dit ook zo, dit geeft wat meer flexibiliteit in je code :)

This message was sent on 100% recyclable electrons.


Verwijderd

Topicstarter
Thanks! Zo had ik er nog helemaal niet over nagedacht, ga het meteen proberen.