Archief - clean url

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sarnath

Legacy Member
Totnutoe maak ik in mijn url's toch nog gebruik van een punt.
Voorbeeld:
Code:
http://www.mijnwebsite.be/nieuws/bugatti-veyron-16.4-uitgebracht

Een volledige cleane url zou zijn:
Code:
http://www.mijnwebsite.be/nieuws/15/bugatti-veyron-16-4-uitgebracht
of
Code:
http://www.mijnwebsite.be/nieuws/15/bugatti-veyron-164-uitgebracht

Nu maak ik in url nog steeds gebruik van een id voor de titel, dus de "15"
Ik zie op 50% van de plaatsen dat dit zo wel is, andere 50 dan weer niet.

Nu vroeg ik mij af, stel dat je puur op basis van de titel terug het artikel wil ophalen, dan komt je string toch niet meer overeen, aangezien je de punt hebt verwijderd?

Zijn er hier mensen die zonder ID werken, en hoe handelen jullie het terug ophalen af? In je sql query ook een replace doen van punt en andere tekens?

Of is met een id in de url gewoon de beste manier?

Even voor de duidelijkheid, ik weet dat het simpel op te lossen is, maar ik zou graag de CORRECTE manier weten, geen snelsnel manier :)

Tyfius

Legacy Member
Drupal werkt ook zonder ID. Je hebt een unieke string die overeenkomt met die pagina. Als je een 2de pagina hebt met die identieke titel kan je daar een 2 ofzo achter plakken.

Wat Drupal doet, en wat volgens mij het beste is, is om een 2de URL aan te maken en de eerste met een 301 redirect daarnaar te laten verwijzen. Op die manier hou je de oude URL zodat mensen die de oude URL gebookmarked hebben niet op een pagina met een foutmelding terecht komen.

Nu, met die 301 laat je Google en anderen weten dat de URL permanent aangepast is zonder het risico te lopen dat zij je gaan "straffen" omdat je meerdere url's naar dezelfde pagina hebt.

sarnath

Legacy Member
De titel van een nieuwsartikel is identiek, da's alvast geen probleem.
Ik zit gewoon een goede oplossing te zoeken om te weten hoe ik dit artikel moet ophalen via een clean url terwijl de nieuwpagina wel een titel met speciale tekens zoals een . kan tonen.

Maar als ik het goed heb dien ik dus iets qua databasetabel te maken als volgt:

tabel nieuws
veld titel (bijvoorbeeld) nieuwe bugatti veyron 16.4
veld url (bijvoorbeeld)nieuwe-bugatti-veyron-16-4

adrianhates

Legacy Member
sarnath zei:
Maar als ik het goed heb dien ik dus iets qua databasetabel te maken als volgt:

tabel nieuws
veld titel (bijvoorbeeld) nieuwe bugatti veyron 16.4
veld url (bijvoorbeeld)nieuwe-bugatti-veyron-16-4

idd, je kan url ook best een unique field maken.

sarnath

Legacy Member
ok bedankt.

Ik had ook nog een vraag over een zoekfunctie.

Ik zie op veel websites bijvoorbeeld als je in het nieuws zoekt dat er in de url dan iets staat als bmw+coupé of lamborghini+16.4

Is het hier dan eigenlijk gewoon een kwestie van de zoekitems te laten zoals de gebruiker ze heeft ingevuld en te maken dat de spaties mooi opgevuld worden met + of wat is hier de beste werkwijze voor?

adrianhates

Legacy Member
goh dat is hoedat je het zelf wilt.. Die pluskes gebruiken ze wss ook gewoon maar als delimiter om die zoekwoorden te splitsen. Met spaties gaat het evengoed.

edit: link naar explode functie die het splitst :) :
http://php.net/manual/en/function.explode.php

edit2: Ik snap wel niet goed hoe ze dat dan doen.. een search field zit ook gewoon maar in een form en wordt dan via get doorgestuurd.. Waarschijnlijk zetten ze die dan met een scriptje zo in de action voor submit, geen idéé eigelijk. :D

Ge kunt ook gewoon ne POST doen en dan hebt ge die url niet zo... Ge kunt nog altijd die explode functie gebruiken om uw zoekwoorden te splitsen die je via GET of POST binnenkrijgt

sarnath

Legacy Member
adrianhates zei:
goh dat is hoedat je het zelf wilt.. Die pluskes gebruiken ze wss ook gewoon maar als delimiter om die zoekwoorden te splitsen. Met spaties gaat het evengoed.

edit: link naar explode functie die het splitst :) :
PHP: explode - Manual

edit2: Ik snap wel niet goed hoe ze dat dan doen.. een search field zit ook gewoon maar in een form en wordt dan via get doorgestuurd.. Waarschijnlijk zetten ze die dan met een scriptje zo in de action voor submit, geen idéé eigelijk. :D

Ge kunt ook gewoon ne POST doen en dan hebt ge die url niet zo... Ge kunt nog altijd die explode functie gebruiken om uw zoekwoorden te splitsen die je via GET of POST binnenkrijgt

ik doe dat via get omdat ik dan onderaan bij veel resultaten paginanrs zet waar ze naartoe kunnen navigeren en ik dan in mijn get da page kan meegeven, maar idd zoals je zegt der zijn idd een hoop manieren om hiermee te werken.
Ieder zal zn eigen manier hebben :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan