Dus bij elke pagina-aanroep wordt je doorgestuurd naar dezelfde pagina, maar met een iets andere URL?
Lijkt mij geen goede oplossing, mocht dit het geval zijn.
Dus bij elke pagina-aanroep wordt je doorgestuurd naar dezelfde pagina, maar met een iets andere URL?
Lijkt mij geen goede oplossing, mocht dit het geval zijn.
Heey Eddy,
Waarom is dat geen goed idee?
Bovenstaande code wordt aangeroepen als er op submit wordt gedrukt.
Ook heb ik veel met htaccess geprobeerd, maar is me niet echt gelukt.
Hoe zou jij het aanpakken?
Javascript is inderdaad geen oplossing. Nu voer je in principe 2 requests uit op je server om alleen een URL te herschrijven. Schaal je applicatie eens (in gedachten) op naar een grote hoeveelheid gebruikers die zoeken en bedenk daar een server load bij.
Om ook nog even op je eerste post te reageren: Volgens mij mis je het "RewriteEngine on" directive in je .htaccess.
Dat alles gezegd te hebben, probeer dit eens als .htaccess:
RewriteEngine on
RewriteRule ^zoek/(.+)$ zoek.php?q=$1 [L]
En dump dan eens $_GET in je zoek.php.
Heb het net even snel getest en volgens mij moet het zo goed gaan.
Maar nu het belangrijkste: Wat gebeurt hier?
Je zegt in feite dit:
Als "zoek/" voorkomt aan het begin van de URL, pak dan alles wat daar achter staat en prop het in $1.
Vervolgens gaan we dit intern behandelen alsof de URL zoek.php?q=$1 was.
De [L] flag zegt dat er geen verdere rewrites moeten worden uitgevoerd op URLs die matchen met het voorgaande.
Javascript is inderdaad geen oplossing. Nu voer je in principe 2 requests uit op je server om alleen een URL te herschrijven. Schaal je applicatie eens (in gedachten) op naar een grote hoeveelheid gebruikers die zoeken en bedenk daar een server load bij.
Om ook nog even op je eerste post te reageren: Volgens mij mis je het "RewriteEngine on" directive in je .htaccess.
Dat alles gezegd te hebben, probeer dit eens als .htaccess:
RewriteEngine on
RewriteRule ^zoek/(.+)$ zoek.php?q=$1 [L]
En dump dan eens $_GET in je zoek.php.
Heb het net even snel getest en volgens mij moet het zo goed gaan.
Maar nu het belangrijkste: Wat gebeurt hier?
Je zegt in feite dit:
Als "zoek/" voorkomt aan het begin van de URL, pak dan alles wat daar achter staat en prop het in $1.
Vervolgens gaan we dit intern behandelen alsof de URL zoek.php?q=$1 was.
De [L] flag zegt dat er geen verdere rewrites moeten worden uitgevoerd op URLs die matchen met het voorgaande.
Hoop dat het zo een beeje duidelijk uitgelegd is.
Hey Termination,
Het is me gelukt met .htaccess! Mag ik die $1 trouwens ook voor andere RewriteRules gebruiken?
Dat heeft voor SEO wat voordelen: een extra keyword, een kortere URL en keywords dichter bij het begin.
Het betekent ook dat je (meestal) niet meer alleen .htaccess kunt gebruiken voor de routing, maar dat je in index.php zult moeten controleren of de opgevraagde URL voorkomt in een database of paginacache.
Daar heb ik wel over nagedacht, maar er zijn veel links op internet die direct verwijzen naar een artikel.
En die moeten dat ID ook hebben. Dus om historische redenen (jaja) is dit zo.
En het minder fout-gevoelig (een - of een _?). Nu is dat redelijk dicht te spijkeren, maar zo zeker als een nummertje wordt het nooit.