Hallo,

Ik ben voor een site bezig met het verbeteren van de SEO. Nou wil ik graag de URL verbeteren door middel van tekst in plaats van id's in de URL.

Voorbeeld: www.domein.nl/pagina/?id=1&pagina=functie&jaar=2019

ID 1 is bijvoorbeeld jan-peter-balkenende. En ik zou dan de URL willen wijzigen in: www.domein.nl/pagina/jan-peter-balkenende/functie/2019. Ik had alleen een paar vragen die bij me op komen.

- Moet ik dan in de database voor elke persoon een unieke URL-naam opslaan zoals ID 1 = jan-peter-balkenende? Of wat is hierbij gebruikelijk? En dan in plaats van zoeken op ID 1 zoeken op jan-peter-balkenende?

- Is er een mogelijkheid waarbij de oude URL blijft werken? Die staan nu namelijk op Google. Blijven die zo bruikbaar, of kan ik die dan op één of andere manier verwijzen?
$_GET is voor uitlezen van query-strings in de URL, zoals: www.site.nl?pagina=blah&jaar=2019
Dat heb je niet nodig als je met een URL als site.nl/blah/2019 zou werken. Dan bouw je die segmenten (blah, 2019 etc..) op aan de hand van $_SERVER['REQUEST_URI'].

Mijn .htaccess ziet er in hoofdlijnen zo uit:

# Zet RewriteEngine aan
RewriteEngine on

# Werk vanuit de webroot, gebruik dan een /
RewriteBase /

# Stuur elke request door naar index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA]



Zoals ik al zei, stuur alles van de vorm /kalender/* door naar /kalender/index.php

Maak vervolgens een index.php onder kalender met de volgende simpele inhoud:
<?php
echo $_SERVER['REQUEST_URI'];
?>


Vervolgens kun je jouw kalender-directory aanroepen zoals je wilt:
http://www.domein.nl/kalender/het/maakt/niet/uit/wat/hierachter/komt

Dit komt allemaal bij jouw /kalender/index.php terecht, het pad begon immers met /kalender.

Jouw /kalender/index.php bepaalt wat er vervolgens met zo'n URL gebeurt:
#1 is dit een bestaande "pagina": toon de bijbehorende functionaliteit
#2 is dit een niet-bestaande "pagina": toon een 404-pagina

#1 en #2 programmeer je beide in /kalender/index.php, op grond van de inhoud van de aangeroepen URL (op te vragen via $_SERVER['REQUEST_URI']).
Dat had ik ook wel gedaan, ware het niet dat de topicstarter aangaf dat deze kalenderfunctionaliteit naast een Wordpress installatie bestaat, het is dus niet de bedoeling dat *alles* wordt geredirect, enkel alles van de vorm /kalender :).

EDIT: maar ja, daar staat wel uitgelegd hoe je hier makkelijk het pad uitvist, wat je verder kunt helpen om te bepalen wat er dient te gebeuren.
Oké, onderstaande werkt in een normale setting. Maar hoe kan ik dit combineren met Wordpress. Daar krijg ik het niet voor elkaar. Als ik dat toevoeg aan de bestaande .htaccess daar levert dat niks op. Dan krijg ik gewoon de 404 pagina.

Het bestand kalender.php staat in de WP-content map als thema en die wordt vervolgens gebruikt als pagina template met /kalender als permalink. En is dus de pagina website.com/kalender/index.php.

RewriteEngine On
RewriteBase /
RewriteRule ^kalender/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . kalender/index.php [L]


De kalender staat nu dus wel in de Wordpress-directory, maar maakt niet gebruik van de core-functies van Wordpress zelf? Dan zou ik eerder denken dat je er beter een Wordpress add-on van kan maken. Dan maak je meteen gebruik van alle basisfuncties, zoals deze: https://codex.wordpress.org/Function_Reference/get_query_var

Ik denk dat je het nu juist lastiger maakt doordat twee verschillende site in een enkele probeert te bouwen met beiden een aparte basis.
De structuur van de pagina (en alle andere) is:

<?

get_header();

// Eigen invulling waarin in dit voorbeeld de kalender wordt opgehaald uit de database

get_footer();

?>
Ik hoop wel met een volledige PHP-tag.

Maar gebruik je dus aparte scripts buiten Wordpress zelf om in de Wordpress directory? Ook als je dingen uit de database ophaalt, behoor je dit niet in een template te doen, maar juist via een functie, en bij Wordpress is daar een add-on uitstekend voor geschikt.
Haha, ja foutje.

Ik gebruik inderdaad eigen scripts daar tussen in. Het is vooral een databasewebsite waarbij ik dmv $_GET de parameters ophaal en die verwerk. Ik gebruik wel enkele plugins als een User plugin, Cookie en SSL bv. Maar ben daar niet echt fan van zolang het buiten Wordpress om kan.
Wat dacht je van dezelfde database-connectie gebruiken en de functies die Wordpress allemaal al biedt, zoals de genoemde URL-functie? Ik vind het verre van logisch om een site in een site te bouwen :-P

Wat houdt je tegen om een add-on te schrijven?

Reageren