Heyy devvers,
Ik zit met een dilemma wat betreft mooie url's voor mn php systeempje.
Laat ik beginnen met zeggen dat het een MVC opzet heeft, en de url's er standaard zo uit zien:
Over het algemeen al een redelijke url, maar specifiek voor SEO doeleinden is dit niet altijd toereikend.
Stel dat ik namelijk een controller 'product' heb, en daarin nog een method heb genaamd 'overzicht' krijg ik dus zo'n url:
Met een en ander 'hack'werk heb ik voor de producten ook kunnen zorgen dat de url er als volgt uit komt te zien:
Feitelijk kijk ik vóórdat ik een controller laad, of de eerste parameter na de '/' voorkomt in mijn database. zo ja > laad de product controller, zo nee > laad de controller die hetzelfde is als de eerste parameter (dus back to basics, gewoon weer url's afhandelen zoals de bedoeling is).
Alleen moet dit ook nog gebeuren voor de hoofdcategorie, en subcategorie.
De url voor de hoofdcategorie zou dan zoiets moeten worden:
En de url voor de subcategorie het volgende:
Nu jullie een beetje snappen (hopelijk) wat mijn bedoeling is, zit ik enorm in twijfel of ik dit in mijn applicatie ga afhandelen, of doormiddel van url rewrites in een htaccess bestand.
Dat laatste doet eigenlijk precies waarvoor het gemaakt is, alleen is het probleem dat als er een nieuw product wordt toegevoegd, of een nieuwe (hoofd)categorie, dat die htaccess weer veranderd moet worden.
Waar ik meer aan zat te denken is voor een aanpak die ik eigenlijk al gebruik voor de producten. Ik kijk of er een product in de database staat, waarvan de seo_url waarde overeenkomt met de eerste parameter na de '/' in de url. Dit zou ik dan omgooien naar een aparte tabel in mijn database die ik 'routing' oid noem.
Voorbeeldje
Eventueel in een cache bestand stoppen zodat ik niet elke keer die query uit hoef te voeren.
Dit zou ook te automatiseren zijn, als ik een nieuw product toevoeg, dat hij automatisch de SEO url aanmaakt.
Weet ook niet precies hoe grote systemen als bijv. Joomla of Magento oid dit doen, of dat ze dit helemaal niet doen?
Anyways, hebben jullie een idee over de beste manier?
Edit: besloten om de product.html niet direct na de eerste '/' te doen, maar om hoofd-cat/sub-cat/product.html te doen
Edit2: als de naam van de method leeg is, roept hij de index() method aan
Ik zit met een dilemma wat betreft mooie url's voor mn php systeempje.
Laat ik beginnen met zeggen dat het een MVC opzet heeft, en de url's er standaard zo uit zien:
http://xxxxx.tld/contoller/method/param1/param2/etc
Over het algemeen al een redelijke url, maar specifiek voor SEO doeleinden is dit niet altijd toereikend.
Stel dat ik namelijk een controller 'product' heb, en daarin nog een method heb genaamd 'overzicht' krijg ik dus zo'n url:
http://xxxxx.tld/product/overzicht/product-naam.html
Met een en ander 'hack'werk heb ik voor de producten ook kunnen zorgen dat de url er als volgt uit komt te zien:
http://xxxxx.tld/product-naam.html
Feitelijk kijk ik vóórdat ik een controller laad, of de eerste parameter na de '/' voorkomt in mijn database. zo ja > laad de product controller, zo nee > laad de controller die hetzelfde is als de eerste parameter (dus back to basics, gewoon weer url's afhandelen zoals de bedoeling is).
Alleen moet dit ook nog gebeuren voor de hoofdcategorie, en subcategorie.
De url voor de hoofdcategorie zou dan zoiets moeten worden:
http://xxxxx.tld/keuken-apparatuur.html
En de url voor de subcategorie het volgende:
http://xxxxx.tld/keuken-apparatuur/staafmixers.html
Nu jullie een beetje snappen (hopelijk) wat mijn bedoeling is, zit ik enorm in twijfel of ik dit in mijn applicatie ga afhandelen, of doormiddel van url rewrites in een htaccess bestand.
Dat laatste doet eigenlijk precies waarvoor het gemaakt is, alleen is het probleem dat als er een nieuw product wordt toegevoegd, of een nieuwe (hoofd)categorie, dat die htaccess weer veranderd moet worden.
Waar ik meer aan zat te denken is voor een aanpak die ik eigenlijk al gebruik voor de producten. Ik kijk of er een product in de database staat, waarvan de seo_url waarde overeenkomt met de eerste parameter na de '/' in de url. Dit zou ik dan omgooien naar een aparte tabel in mijn database die ik 'routing' oid noem.
Voorbeeldje
code:
1
2
3
4
5
6
7
8
9
| ROUTING |---------seo_url--------------------------|---controllers---| | keuken/staafmixers/philips-xzc-230.html | product | |------------------------------------------|-----------------| | keuken/staafmixers.html | category | |------------------------------------------|-----------------| | keuken.html | category | |------------------------------------------|-----------------| |
Eventueel in een cache bestand stoppen zodat ik niet elke keer die query uit hoef te voeren.
Dit zou ook te automatiseren zijn, als ik een nieuw product toevoeg, dat hij automatisch de SEO url aanmaakt.
Weet ook niet precies hoe grote systemen als bijv. Joomla of Magento oid dit doen, of dat ze dit helemaal niet doen?
Anyways, hebben jullie een idee over de beste manier?
Edit: besloten om de product.html niet direct na de eerste '/' te doen, maar om hoofd-cat/sub-cat/product.html te doen
Edit2: als de naam van de method leeg is, roept hij de index() method aan
[ Voor 4% gewijzigd door Saven op 09-03-2013 14:28 ]