Seo url en database
Ik loop een beetje vast met vriendelijke URL's. Ik zal eerst de huidige situatie even omschrijven:
Ik heb 2 databases:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
paginas
-----------------
id,
naam,
content
subpaginas
-----------------
id,
naam,
content
-----------------
id,
naam,
content
subpaginas
-----------------
id,
naam,
content
Nu ben heb ik in mijn zelf ontwikkelde CMS het al zover gekregen dat de url in de navigatie er als volgt uitkomt: www.domein.nl/paginanaam , nu krijg ik het alleen niet meer terug gekoppeld naar en uit de databases. En daarbij vraag ik me af wat het handigste is.
Vraag 1:
1 database met paginas en subpaginas of deze 2 databases apart houden?
Vraag 2:
Hoe krijg ik het voor elkaar dat hij de pagina naam oppakt en de juiste pagina gegevens (content) uit de database ophaalt?
alvast bedankt voor de hulp.
Gewijzigd op 07/03/2011 18:55:04 door Bas IJzelendoorn
Quote:
Vraag 1:
1 database met paginas en subpaginas of deze 2 databases apart houden?
1 database met paginas en subpaginas of deze 2 databases apart houden?
je hebt het niet over 2 databases maar 2 tabellen in 1 databas.
Let wel een pagina is een pagina, dus sla je het gewoon op in 1 tabel
Quote:
Vraag 2:
Hoe krijg ik het voor elkaar dat hij de pagina naam oppakt en de juiste pagina gegevens (content) uit de database ophaalt?
Hoe krijg ik het voor elkaar dat hij de pagina naam oppakt en de juiste pagina gegevens (content) uit de database ophaalt?
Ik zal gewoon aan het begin van de paginanaam het id plaatsen daarna een scheidingsteken, bijvoorbeeld het min teken, dan kan je gewoon het id eruit trekken ben ben je niet afhankelijk van paginanaamswijzigingen.
of zoals hier dat je krijgt /<paginanaam>/<idpaginanaam>/
Gewijzigd op 07/03/2011 19:12:13 door Noppes Homeland
Wat noppes zegt is wel een goede tip, ids en de titel oid gebruiken, vind het voor een simpele contentpagina wat minder mooi staan (site.nl/2/over-ons) de kans dat je een dubbele contentpagina krijgt is als het goed is vrij klein. VOor nieuwsberichten, fora, etc etc gebruik ik het wel altijd. Ik zou trowuens wel én op het streepje en op de titel zoeken, anders kan je de titel in de url veranderen, id blijft het zelfde, dus werkt het nog steeds, beetje raar vind ik.
paginas
-------
id
naam
content
parent_id (FK -> paginas.id)
Ik zou er evenwel niet voor kiezen om het id en de naam te combineren. Je kunt met behulp van mod-rewrite prima de naam en het id gescheiden in de url hebben staan en vervolgens niets met de naam doen. Je gebruikt enkel het id om de pagina op te vragen.
Ik heb nu alles in een tabel gezet en heb de urls aangepast. Ik had als ik op een link klikte het volgende:
Nu is dat:
Ik heb tevens in de tabel een apart veld gemaakt om de subpaginas te koppelen aan de hoofdpaginas.
Maar ik heb hem nog niet helemaal duidelijk. Is het nu handiger om de url zo te hebben:
www.domein.nl/home/1/ --> hierbij haal ik enkel het id eruit.
of:
www.domein.nl/home/ --> hierbij pak ik de pagina naam
Ik loop dus een beetje vast in de opbouw van de url, de php (het aanroepen van de juiste pagina) en de htaccess waarvan ik het volgende heb:
Ik heb al enkele tutorials gelezen maar kom er niet uit.
Gewijzigd op 08/03/2011 21:28:27 door Bas IJzelendoorn
Afhankelijk van je applicatie kun je een van de twee oplossingen kiezen. Is een naam van een pagina altijd uniek, dan zou ik voor de tweede oplossing kiezen. Bestaat de kans dat er paginas met dezelfde naam aangemaakt worden (bijvoorbeeld in het geval van forumtopics oid), dan zou ik voor de eerste oplossing kiezen.
De eerste oplossing sluit overigens niet uit dat je niet de naam ook in de url kunt zetten.
www.domein.nl/paginanaam
Maar hoe verwerk ik dit nu goed a.d.v. htaccess en php Kan ik dan direct linken naar die paginanaam en hoe pak ik dan de goede pagina uit de database, want dan kom ik een beetje terug bij af.
Ik heb sowieso geen dubbele pagina's en als die er toch komen zal ik voor het toevoegen zorgen dat dit niet kan. Dubbele records heb ik sowieso geen zin in. Dus dan krijg ik Maar hoe verwerk ik dit nu goed a.d.v. htaccess en php Kan ik dan direct linken naar die paginanaam en hoe pak ik dan de goede pagina uit de database, want dan kom ik een beetje terug bij af.
www.domein.nl/index.php?pagina=Home
En je wilt:
www.domein.nl/home/
Dan moet de URL rewrite zoiets worden:
Hiermee schrijf je /[iets]/ om naar index.php?pagina=[iets]
Ik heb de tutorial van Write Down erbij gepakt en nu lukt het wel. Maar is dit wel de beste oplossing, niet dat ik twijfel aan reacties van een ander maar ik wil natuurlijk wel zeker weten dat ik niet bezoekers ga mislopen door een fout o.i.d. en hij geeft aan dat het meestal voldoende is? wanneer niet?
Edit:
Loop toch tegen een ander probleem nu aan:
Als ik via mijn cms, welke gebruik maakt van TinyMCE, een afbeelding toevoeg. Krijg ik geen afbeelding te zien.
zowel als ik de url gebruik: bestanden/afbeelding.png
als http://www.domein.nl/bestanden/afbeelding.png
Het enige wat ik te zien krijg is:
broncode output:
Loop toch tegen een ander probleem nu aan:
Als ik via mijn cms, welke gebruik maakt van TinyMCE, een afbeelding toevoeg. Krijg ik geen afbeelding te zien.
zowel als ik de url gebruik: bestanden/afbeelding.png
als http://www.domein.nl/bestanden/afbeelding.png
Het enige wat ik te zien krijg is:
broncode output:
Gewijzigd op 09/03/2011 11:54:48 door Bas IJzelendoorn
Gewijzigd op 11/03/2011 12:21:30 door Bas IJzelendoorn
if (get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
}
Zorg er gewoon voor dat php goed ingesteld staat:
http://php.net/manual/en/security.magicquotes.php
en uiteraard ga je zelf ook niet zitten escapen
Gewijzigd op 31/03/2011 18:54:31 door Noppes Homeland
Als php goed is ingesteld dat hoeft dat ook niet, logisch toch?