CMS: Meerdere dynamische pagina-URL's uniek maken

Leestijd 3 minuten
Elke dynamische pagina die je maakt, moet een unieke URL hebben. Onthoud dat je dynamische pagina-URL's dynamische en statische gedeelten hebben. Deze gedeelten beïnvloeden de uniekheid op een andere manier. 

  • Statische gedeelten: De inhoud van de statische gedeelten van je URL tellen mee voor uniekheid. Recepten/menu/{maaltijd} is bijvoorbeeld uniek, maar recepten/Menu/{maaltijd} ook, omdat Menu anders is dan menu.
  • Dynamische gedeelten: De gedeelten en hun locatie in de URL tellen mee voor uniekheid, maar niet het veld waarnaar ze verwijzen. Recepten/menu/{maaltijd} is bijvoorbeeld niet uniek in vergelijking met recepten/menu/{gang}, omdat ze allebei recepten/menu bevatten gevolgd door een enkel dynamisch gedeelte. Het feit dat in het ene geval het dynamische gedeelte filtert op het maaltijdveld en het andere op het gangveld, heeft geen invloed op de uniekheid van de URL's. Recepten/menu/{maaltijd} is echter uniek in vergelijking met recepten/{maaltijd}/menu, omdat het dynamische gedeelte op een andere locatie in de URL verschijnt. recepten/menu/{maaltijd} is ook uniek in vergelijking met recepten/menu/{maaltijd}/{gang}, omdat een van de URL's een dynamisch gedeelte meer heeft dan de andere.

Laten we eens kijken hoe dit van invloed kan zijn op de manier waarop je dynamische pagina's instelt. Stel dat je een receptenwebsite hebt met een verzameling recepten. Naast de velden die de receptinformatie bevatten, heeft je verzameling een maaltijdveld waarin je aangeeft of het recept voor ontbijt, lunch of diner is. Het heeft ook een gangveld dat aangeeft of het een voorgerecht, hoofdgerecht of dessert is.

Stel dat je een dynamische itempagina voor je recepten maakt met een URL zoals deze:


Nu wil je een dynamische lijstpagina maken om je recepten weer te geven op basis van het maaltijdveld. Je kunt proberen een URL als volgt te definiëren:


Als je echter probeert een pagina met deze URL te maken, krijg je een foutmelding dat je deze niet kunt gebruiken omdat de URL niet uniek is. Dit komt omdat beide URL's het identieke patroon van recepten/{een-dynamisch-veld} volgen. Onthoud dat de inhoud van de dynamische velden niet meetelt voor uniekheid, dus maaltijd en titel worden als identiek beschouwd.
Let op:
Alleen de statische delen van de URL's zijn hoofdlettergevoelig. 

URL's bewerken om ze uniek te maken

Om je URL's uniek te maken, moet je ze handmatig bewerken om bestaande statische gedeelten toe te voegen of te wijzigen. Wanneer je op de URL klikt om deze te bewerken, worden de dynamische gedeelten die je hebt toegevoegd tussen { } ingesloten, dus ze zien er als volgt uit: http://www.../recepten/{maaltijd} .

Wanneer je een dynamische lijstpagina maakt, is het raadzaam de categorie handmatig aan de URL toe te voegen om deze uniek te maken. De URL voor de maaltijdpagina is bijvoorbeeld http://www.../recepten/maaltijden/{maaltijd} en de URL voor de gangpagina is http://www.../recepten/gangen/{gang}.

Hierdoor zou de eigenlijke URL voor je ontbijtmaaltijdpagina http://www.../recepten/maaltijden/ontbijt zijn en de URL voor je hoofdgerechtpagina http://www.../recepten/gangen/hoofd.

Je kunt echter bestaande dynamische gedeelten wijzigen of alles toevoegen wat je maar wilt aan de URL achter de websitenaam om deze uniek te maken. 

Ervoor zorgen dat je berekende URL's uniek zijn

Omdat de URL van een bepaalde dynamische pagina wordt berekend op basis van de gegevens in je verzameling, is het essentieel dat de inhoud van de velden waaruit je dynamische pagina-URL's bestaan, uniek is. Met andere woorden, als je meerdere recepten voor cupcakes hebt en in hun titelveld staat allemaal 'cupcakes', dan hebben ze allemaal dezelfde berekende URL. Dit zorgt voor een onstabiele situatie waarbij je nooit weet welke dynamische pagina wordt weergegeven. 

Het dynamische deel van de URL's is niet hoofdlettergevoelig. Dit betekent dat als je een recept met de naam "cupcakes" en een ander met "Cupcakes" hebt, er slechts één wordt weergegeven, ongeacht hoe de URL eruit ziet.

Vond je dit artikel nuttig?

|