Met behulp van htaccess heb ik zoekmachine vriendelijke urls gemaakt. Deze url's zijn dan als volgt:
www.site.nl/categorie/ (categorie pagina)
www.site.nl/categorie/subcategorie/ (subcategorie pagina)
www.site.nl/categorie/subcategorie/product.html (product pagina)

Nu wil ik echter dat bij de subcategorie pagina ook nog geordend /gefliterd kan worden. Dan zou de url dus bijvoorbeeld worden: www.site.nl/categorie/subcategorie/?merk=apple&order=naam&sort=desc. Ik heb dit werkend gehad, maar sinds ik htaccess heb gebruikt werkt het niet meer.

Het htaccess bestand ziet er als volgt uit:
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+).html$ index.php?cat=$1&subcat=$2&product=$3 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)$ /$1/$2/ [R]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php?cat=$1&subcat=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)$ /$1/ [R]
RewriteRule ^([A-Za-z0-9-]+)/$ index.php?cat=$1 [L]

Hoe kan ik het dus zo doen dat ik de volgende urls werkend heb:
www.site.nl/categorie/subcategorie/?merk=apple
www.site.nl/categorie/subcategorie/?merk=apple&order=naam&;
www.site.nl/categorie/subcategorie/?merk=apple&order=naam&sort=desc

En ook nog:
www.site.nl/categorie/subcategorie/?order=naam
www.site.nl/categorie/subcategorie/?order=naam&sort=desc

Ik hoop dat jullie het antwoord hierop weten. :-)
Waarom zou je nu alsnog het ? gaan gebruiken? Je kunt toch gewoon mod-rewrite gebruiken om die variabelen ook de herschrijven?

Dus de url zou dan bijvoorbeeld zoiets worden:

jouwsite.nl/categorie/subcategorie/sort/apple/
jouwsite.nl/categorie/subcategorie/sort/apple/naam/
jouwsite.nl/categorie/subcategorie/sort/apple/naam/desc/

Met bijvoorbeeld als rewriterules:

RewriteRule ^(.*?)/(.*?)/sort/(.*?)/(.*?)/(.*?)/$ index.php?cat=$1&subcate=$2&merk=$3&order=$4&sort=$5 [L]
RewriteRule ^(.*?)/(.*?)/sort/(.*?)/(.*?)/$ index.php?cat=$1&subcate=$2&merk=$3&order=$4 [L]
RewriteRule ^(.*?)/(.*?)/sort/(.*?)/$ index.php?cat=$1&subcate=$2&merk=$3 [L]
Dit wil ik omdat ik een nette hierarchische structuur wil aanhouden van de echte content (categorie, subcategorie en product). Deze wil ik dus als enige in een nette mappenstructuur. Snap je? :-)
waarom doe je de sort en de acs/decs dan niet via post??
Laat gewoon alles schrijven naar een _GET parameter. En die kan je dan splitten op '/'. Zo heb je geen onnodig grote .htaccess :)

[edit]
(en aangezien Apache niet zo heel snel is met zijn .htaccess heb je ook nog wat tijdswinst ;))
[/edit]
Nee eigenlijk niet. Waarom zou je het sorteren ook niet in die 'mappenstructuur' opnemen. Bijkomend voordeel is dan namelijk dat er ook gewoon door google en andere bots te indexeren valt...

Maar goed, als je daar niet vanaf wilt stappen, zul je de rewriterule waarin je product.html omschrijft alleen uit moeten voeren als er geen ? in dat gedeelte voorkomt.

Komt er wel een ? in de url voor, dan zul je dus de subcategorie pagina uit moeten voeren en de GET variabelen uit de url moeten gebruiken.

Reageren