Hoi iedereen,
Ik ben voor een klant bezig met een website waarbij veel gebruik wordt gemaakt van de database. Nu zijn wij druk bezig met SEO vriendelijke url's. In mijn ogen zijn de huidige URL's goed opgebouwd maar mijn klant wilt dit gewijzigd zien.
Mijn URL:
categorie/autos-motoren-fietsen-30/professionele-gereedschappen-140/
Categorie Auto's & Motoren & Fietsen en dan zit ik in subcategorie Professionele gereedschappen. Waar bij 30 het ID is van de categorie en 140 het ID is van de subcategorie. In mijn ogen is dit netjes opgebouwd, maar mijn klant wilt het volgende:
categorie/autos-motoren-fietsen/professionele-gereedschappen/
Hij wilt dus de ID's weglaten en werken met de titels. Maar nu is dit soms lastig terug te koppelen naar de database om subcategorie e.a. dingen op te halen.
Is er een mogelijkheid deze onderstaande structuur te volgen en toch een manier te hebben om veilig en snelle database query's te maken?
Ik hoor graag van jullie!
Groetjes,
Sjoerd
- URL structuur
-
15-07-2011, 12:13 #1
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
URL structuur
-
In de schijnwerper
-
15-07-2011, 14:45 #2
- Berichten
- 158
- Lid sinds
- 14 Jaar
Re: URL structuur
Code:mysql_query("SELECT ID FROM table WHERE Naam='".mysql_real_escape_string($_GET['naam'])."'");
-
15-07-2011, 14:49 #3
- Berichten
- 208
- Lid sinds
- 15 Jaar
Re: URL structuur
Misschien de url-formatted link als extra veld opslaan in de database?
-
15-07-2011, 14:50 #4
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
Re: URL structuur
Dit is geen optie Bas aangezien de naam van categorie al omgezet wordt naar kleine letters, speciale teken filter en spatie filter.
Ik zit te denken aan een extra veld toe te voegen met link_name en bij het aanmaken van een categorie, direct de url structuur opslaan in de database. bijvoorbeeld "autos-motoren-fietsen" opslaan bij de categorie Auto's & Motoren & Fietsen zodat we wel gebruik kunnen maken van een $_GET['link_name'].
Ik vraag me alleen af in hoever dit veilig is om dit op te halen met een link_name, en je geen foute pagina's gaat krijgen.
-
15-07-2011, 15:16 #5
- Berichten
- 1.470
- Lid sinds
- 19 Jaar
Re: URL structuur
Linknaam opslaan, alle rare tekens eruit halen.
In het cms of wat je ook gebruikt iets inbouwen die kijkt of 'test-url' bestaat, zo ja dan moet hij er 'test-url-2' van maken.
-
15-07-2011, 15:20 #6
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: URL structuur
Vrij simpel Sjoerd, zoals je zelf al zegt:
Bij het aanmaken/bewerken van een (sub)categorie de naam formaten naar een versie die uniek is. Dit houd dus in dat je ook dient te controleren of deze naam al bezet is. Het werkt erg simpel, alle speciale tekens eruit halen, accent-tekens omzetten naar accentloze tekens en vervolgens alles lowercase en spaties omgooien naar streepjes of underscores.
Vervolgens kun je die waarde mooi in een extra veld stoppen, persoonlijk gebruik ikzelf altijd velden als cat_name en cat_name_seo, waarbij het laatste veld de zoekmachine vriendelijke versie bevat.
Joshua
-
15-07-2011, 15:20 #7
- Berichten
- 1
- Lid sinds
- 13 Jaar
Re: URL structuur
Dit is geen optie Bas aangezien de naam van categorie al omgezet wordt naar kleine letters, speciale teken filter en spatie filter.
Ik zit te denken aan een extra veld toe te voegen met link_name en bij het aanmaken van een categorie, direct de url structuur opslaan in de database. bijvoorbeeld "autos-motoren-fietsen" opslaan bij de categorie Auto's & Motoren & Fietsen zodat we wel gebruik kunnen maken van een $_GET['link_name'].
Ik vraag me alleen af in hoever dit veilig is om dit op te halen met een link_name, en je geen foute pagina's gaat krijgen.
1. Snelheid
2. Veiligheid
3. Uniciteit
1. Het opzoeken van een string gaat normaliter iets langzamer dan het opzoeken van een nummer, echter dit verschil kunnen we verwaarlozen op de tijd die uberhaupt nodig is voor het aanmaken van een MySQL verbinding.
De zoekopdracht kan versneld worden door de zoekterm zo klein mogelijk te houden. Om een rubriek op te zoeken zou bijvoorbeeld een explode() functie gebruikt kunnen worden met als delimiter de slash ('/') en zo alleen het laatste item in het array gebruikt worden om als zoekterm te gebruiken.
2. Wanneer er gezocht gaat worden op een zoekterm, sta je de bezoeker toe om de mysql-query te wijzigen met een string i.p.v. voorheen met enkel een integer. Het is derhalve heel verstandig om goed na te denken over hoe dat je zoekterm gaat invoegen in je mysql-query. Zoektermen die speciale tekens bevatten wil je natuurlijk verbieden (denk hierbij b.v. aan %-tekens). Voor een goede overweging loont het wellicht om artikelen over mysql-inserts te raadplegen.
3. Ten laatste moet de zoekterm uniek zijn. Je wilt niet dat de database twee rubrieken gaat retourneren op 1 zoekterm. Er dient dus altijd een 1 op 1 relatie te zijn tussen de link_name en rubriek. Je kunt deze relatie garanderen door bijvoorbeeld ervoor te zorgen dat de link_name kolom unieke waarden bevat.
Succes met scripten!
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic