Zoekmachine vriendelijke URL
03-10-2009 23:18
Offline Stuur privëbericht
I love music, and you?
Berichten: 1288

Je hebt ze vast wel gezien of misschien gebruik je ze zelf wel, Mega langer urls met get tags. voorbeeld:
"http://www.jouwsite.nl/page.php?id=10&page=4&replies=20&bericht=hallo iedereen"
Maar dat kan ook zo:
"http://www.jouwsite.nl/page.php/10/4/20/hallo iedereen/"
Dat ziet er al een stuk beter uit of niet? en je kunt nog steets id en/of page uit je url halen met de get variable.
Mod_rewrite is uitstekend geschikt om deze url te maken. En het is eigelijks nog simpel ook.

We gaan nu eens kijken of jou host dit ondersteund:
Vraag de php info op:
Code | Selecteer Alles
minimaliseren
1
2
3
<?php
phpinfo
();
?>

Ga op zoek naar &quot;mod_rewrite&quot;, Staat deze er in dan is dit geactiveerd en kun je er mee werken. Je kunt zelf deze funtie niet activeren als je bi jene host zit. Bij een eigen hosting kan dit wel, raadpleeg hiervoor google.nl

Om te beginnen gaan we een .htaccess betsand aanmaken. open kladblok en sla dit op als .htaccess (zonder .txt). Lukt dit niet, ga dan naar je ftp progamma en haal .txt er achter weg. zo heb je een .htaccess bestand.

Open het bestand met kladblok. Nu gaan we de functie activeren door dit bovenaan in het bestand te zetten: &quot;RewriteEngine On&quot; (De aanhalingsteken er niet in zetten!)
Hieronder zetten we: &quot;RewriteBase /&quot; (De aanhalingsteken er niet in zetten!)

Het ziet er dus zo uit:
RewriteEngine On
RewriteBase /

En nu is het tijd om de url in te korten:
Nu gaan we dus de mensen voor de gek houden:
RewriteRule ^oude_map/(.*)/$ nieuwe_map/$1
Wat doen we nu? we laden de nieuwe map terwijl je de gegevens van ene bestaande url afhaald, dus uit &quot;oude map&quot; -&gt; deze laat je zien onder nieuwe map, maar deze gegevens staan helemaal niet in nieuwe map, tevens betaat nieuwe map geen eens.
even voor de duidelijkheid:
Url die zichtbaar is: http://www.jouwsite.nl/nieuwe_map/*iets*
Url die hij laad: http://www.jouwsite.nl/oude_map/*iets*

*iets* man van alles wezen, hij neemt met (.*) de naam daarachter weg en plakt dit doormiddel van $1 weer achter de virtuele url.

nieuwe_map en oude_map kun je gewoon wijzigen in je eigen namen:
voorbeeld eigen toepassing: http://klikvill.gamecoll.com/page/home
game is gebruikt om het gamevenster te openen en Sonic om de game uit het database te roepen.


Meerdere variabelen doe je zo:
RewriteRule ^page/(.*)/(.*)/(.*)/$ page.php?id=$1&amp;page=$2&amp;replies=$3
RewriteRule ^page.*)/(.*)/$ page.php?id=$1&amp;page=$2
RewriteRule ^page/(.*)/$ page.php?id=$1

eerste de grootste daarna de kleinste, anders laad hij de eerste en heeft hij al info en vind hij het niet nuttig om verder te kijken. en anders komt hij info te kort en is er geen match.


Codes die je achter een RewriteRule kunt plakken:
[R] - Redirect een url zichtbaar
[F] - Forceert geen toegang tot een url (403 foutmelding)
[L] - Laatste regel. Gebruik dit voor elke regel die niet met een ander verbonden is.
[NC] - Maak de regel niet hoofdlettergevoelig

Hoe ziet dat er uit: &quot;RewriteRule ^page/(.*)/$ page.php?id=$1 [L]&quot; bijvoorbeeld


LET OP dat je achter je url ALTIJD een / hebt staan.
Iets niet duidelijk? vraag gerust.
Er werd nog geen reactie geplaatst.