Hoe rewrite ik urls wanneer er meerdere subcategorieen mogelijk zijn

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Snelle Jaap

Snelle Jaap

12/05/2020 10:33:07
Quote Anchor link
Ik heb twee pagina's, een productlisting en een productview.

The productlisting is een categoriepagina die meerdere niveau's diep kan zijn, bijvoorbeeld:

wines/red-wines/years/2017

Elk deel van die link moet gaan naar de productlisting.

Wanneer je op een product klikt open je de productview, die link ziet er bijv zo uit:

wines/red-wines/years/2017/la-palma-carmenere-red-75cl

Hoe kan ik dat via htaccess voor elkaar krijgen? Het probleem is dat ik nooit weet hoe diep het product zich bevind, dat kan 1 niveau diep zijn maar ook 4 of 5 etc.

Het moet vast makkelijker kunnen dan voor elke mogelijkheid een rewrite in de htaccess te zetten.
 
PHP hulp

PHP hulp

21/11/2024 20:30:16
 
- Ariën  -
Beheerder

- Ariën -

12/05/2020 10:58:23
Quote Anchor link
Je kan zelf een oerwoud aan rewrite-rules schrijven. Maar dat wordt op den duur erg lastig onderhoudbaar.
Daarom ben ikzelf meer voorstander om een speciale ingang te maken (je index.php) waar al je requests in binnen komen. Dan heb je één mooie ingang om alles te verwerken. Dit is ook hoe haast alle frameworks werken.

Dan kan je met een enkele rewriteRule ervoor zorgen dat je een mooie URL krijg zoals
www.site.nl/wines/red-wines/years/2017/la-palma-carmenere-red-75cl waarbij wines een eigen script is, en de daarop volgende argumenten (red-wines, years etc) via PHP opgehaald kunnen worden.

Eventueel zoals je een eigen router-script kunnen bouwen zodat je zelf kan bepalen hoe de de URL wilt opbouwen. Een framework voorziet hier meestal wel in.
 
Rob Doemaarwat

Rob Doemaarwat

12/05/2020 14:00:43
Quote Anchor link
Dan nog zul je "op de een of andere manier" moeten zien wat een listing is, en wat een product. Wat opties:
- Al je listings met een "/" eindigen (bijvoorbeeld wines/red-wines/years/2017/). Dit moet je dan wel heel consequent doen, en dan nog zal het gebeuren dat iets of iemand die trailing / er af sloopt.
- Al je producten op "een" extensie laten eindigen (bijvoorbeeld wines/red-wines/years/2017/la-palma-carmenere-red-75cl.html). Niet dat het dan om een echt (plat) HTML bestand gaat, maar dat ziet er niet heel "raar" uit, en dan heb je in ieder geval iets om op te filteren.
- Of gewoon in je router (zie opmerking van Ariën hierboven) de URL voor beide varianten "proberen" ("is het een listing? Nee, dan kijken we nog even bij products").
 
Ozzie PHP

Ozzie PHP

12/05/2020 16:06:12
Quote Anchor link
Het meest logische is om gewoon je routes (URLs) op een logische manier in te richten:

/category/wines/red/2017/ => dit is een category (of listing hoe je het ook wil noemen)

/product/wines/la-palma-carmenere-red-75cl => dit is je product

('category' verwijst dan altijd naar een categorie en 'product' naar een product waarbij je optioneel nog de hoofdcategorie (wines) kunt toevoegen aan je url)

Wat je niet wilt (en ik denk dat jij dat wel wil) is dat al deze URLs naar hetzelfde product leiden:

/wines/red/2017/la-palma-carmenere-red-75cl
/wines/red/la-palma-carmenere-red-75cl
/wines/la-palma-carmenere-red-75cl

Dat lijkt me niet gunstig voor je SEO-score en wellicht gaat Google je daar voor afstraffen.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/05/2020 16:35:41
Quote Anchor link
@Ozzie, zou je dat niet op kunnen lossen met het instellen van canonical uRLs?

@Snelle Jaap ea, hier worden min of meer twee onderwerpen door elkaar gegooid: enerzijds de indeling van pagina's, en anderzijds de technische afhandeling hiervan.

Als je deze onderwerpen nu eens apart behandelt? Dus eerst "dit is hoe ik het wil hebben" en dan pas "dit is hoe ik dat vervolgens ga verwezenlijken".

Allereerst: over wat voor site hebben we het uberhaupt? Is dit een site exclusief voor wijnen? Heb je dan echt een sub "wines" nodig? En als je het over een jaar hebt, heb je dan echt een sub "year" nodig? Is jaar ook echt zo belangrijk dat deze in de URL opgenomen zou moeten worden? Misschien als het een site voor exclusieve wijnen is, maar anders? En zelfs dan, de naam van een wijn is mogelijk "belangrijker" dan het jaar, dit zou je in een filter in een vervolgpagina kunnen opnemen wellicht, maar dit verder buiten de URL houden? Of misschien als een suffix in de querystring?

Ik denk dat het sleutelwoord hier "beknoptheid" is - houd URLs zo kort mogelijk.

En bij gebrek aan inspiratie, kijk eens wat andere sites doen, bijvoorbeeld die van een slijterij?

Over de indeling mag best lang nagedacht worden, dit kost waarschijnlijk meer tijd dan de technische implementatie hiervan, en al helemaal wanneer je op een later tijdstip besluit om deze naamgeving weer om te gooien :p.
 
Ozzie PHP

Ozzie PHP

12/05/2020 17:57:16
Quote Anchor link
@Thomas

>> zou je dat niet op kunnen lossen met het instellen van canonical uRLs?

Zou kunnen, maar wat zou het nut of voordeel dan zijn?

>> en al helemaal wanneer je op een later tijdstip besluit om deze naamgeving weer om te gooien :p.

Gniffel gniffel :)
 
Snelle Jaap

Snelle Jaap

13/05/2020 11:34:12
Quote Anchor link
Bedankt voor alle antwoorden ik ga er binnenkort mee aan de slag, zitten een paar handige oplossingen tussen.

En @Thomas het is een site waarop meerdere webshops staan met uiteenlopende branches, van kappers tot slijterijen tot bloemenwinkels, die kunnen allemaal hun eigen categorieen aanmaken, vandaar dat ik die url zo waterdicht mogelijk wil hebben ongeacht hoe diep de categorieen gaan.

Edit: ik zie dat Gall & Gall het ook doet zoals Rob aangaf, producten laten eindigen op een extensie. Ik denk dat ik dat is ga proberen.
Gewijzigd op 13/05/2020 11:36:21 door Snelle Jaap
 
Thomas van den Heuvel

Thomas van den Heuvel

13/05/2020 14:58:52
Quote Anchor link
>> Dat lijkt me niet gunstig voor je SEO-score en wellicht gaat Google je daar voor afstraffen.
>> Zou kunnen, maar wat zou het nut of voordeel dan zijn?

Dan kun je één bronbestand aanwijzen, ook al heb je verschillende pagina's/URLs met dezelfde inhoud. Zodat zoekmachines weten dat het mogelijk duplicaten zijn.
 
Ozzie PHP

Ozzie PHP

13/05/2020 15:56:32
Quote Anchor link
>> Dan kun je één bronbestand aanwijzen, ook al heb je verschillende pagina's/URLs met dezelfde inhoud. Zodat zoekmachines weten dat het mogelijk duplicaten zijn.

Dat snap ik, maar ik bedoelde ... wat zou het nut zijn van meerdere URLs die allemaal precies naar exact dezelfde pagina leiden?
 
Thomas van den Heuvel

Thomas van den Heuvel

13/05/2020 19:32:16
Quote Anchor link
Geen, tenzij je nog aan het schuiven bent met naamgeving.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.