Dit artikel is een aanvulling op tool voor url-rewrite. Waarom? Nou, omdat je er niet vaak mee werkt en je net dit nodig kunt hebben. We gaan een url van een niet-bestaande dynamische pagina permanent doorverwijzen naar een mooie statische url.

In het vorige artikel wees ik een handig Excel-bestand aan waarmee je snel een hele rij redirects maakt. Ik had het opnieuw nodig, maar het werkte niet lekker: de redirect die ik moest maken was nét even anders. De code die ik je hieronder ga geven is perfect voor een redirect van een dynamische naar een statische url. Met dank aan webmasterworld.

Wat was nu het verschil? Meestal wil je een bestaand dynamisch adres naar een mooi statisch adres laten verwijzen. Net zoals de pagina die je nu leest: hij heet eigenlijk “http://www.42bis.nl/?p=69965”, maar de naam wordt door WordPress herschreven naar: “http://www.42bis.nl/2013/04/301-redirects/”.

Maar, ik wilde wat anders: een redirect voor een pagina die niet meer bestaat. Een echte keiharde 301-redirect (lees Vergeet de 301 niet! van Monique Goris). Weg oude site, weg oude dynamische url’s. Welkom nieuwe site met pagina’s met mooie statische url’s. De webadressen hebben niets met met elkaar te maken. Nou, dat gaat dus zo …

301 voor vervallen dynamisch adres naar nieuw statisch adres

Dit:
http://www.voorbeeld.nl/news.php?newsid=79
wordt
http://www.voorbeeld.nl/htaccess/

En dat moet zo:

RewriteEngine On
RewriteCond %{THE_REQUEST} \?
RewriteCond %{QUERY_STRING} (^|&)newsid=79(&|$)
RewriteRule ^news\.php$ http://www.voorbeeld.nl/htaccess? [R=301,L]

Belangrijk: zet dit helemaal bovenin je .htaccess-bestand. Dan weet je zeker dat het werkt. Wil je meer regels toevoegen, herhaal dan regels 2 t/m 4 met de juiste gegevens (dus: nieuw nummer voor regel 3 en nieuw adres voor regel 4).

Wat er precies gebeurt? Zonder de diepte in te gaan: op regel 3 geef je aan dat het deel achter het vraagteken, namelijk newsid=79 naar een nieuwe pagina moet verwijzen. Op regel 4 zeg je dat het deel vóór de vraagteken wordt vervangen en daarna noem je het complete nieuwe adres. De vraagteken op het eind zorgt er in combinatie met het vraagteken op regel 2 voor dat er niets meer wordt ingevuld na het vraagteken.

Wat is .htaccess ook alweer?

De meeste mensen werken niet vaak met een .htaccess-bestand. Maar juist het werken met dit bestand levert vaak de beste resultaten op als je bepaalde dingen rondom je website moet regelen, zoals:

  • een redirect
  • mapbeveiliging
  • verwijzing naar een error-pagina
  • het blocken van bepaald ip-adressen

Je kunt er nog veel meer mee; hierboven staan voorbeelden van de meest gebruikte vormen.

Als je met .htaccess werkt is het belangrijk dat je code precies klopt. Weet je niet goed wat je doet, dan krijg je een 500-fout: internal server error. Omdat het zo nauw luistert, en omdat ik zo blij ben met de hulp van anderen, heb ik beloofd een artikel te wijden aan deze methode vooral omdat er in het Nederlands niet zoveel over te vinden is op het internet. Dus.

Van statisch naar statisch

Ah, jij wilt de code voor de meest simpele 301-verwijzing. Ik voeg ‘m toe, dan scheelt je dat verder zoek-en surfwerk. Het is echt simpel:

RewriteEngine On
redirect 301 /htaccess.php http://www.voorbeeld.nl/htaccess/

Of bijvoorbeeld
RewriteEngine On
redirect 301 /htaccess.html http://www.voorbeeld.nl/htaccess/

Je kunt net zoveel regels toevoegen als je zelf wilt. De eerste regel (engine on) gebruikt je eenmalig.

Links

301 redirects for dynamic urls to static pages
seoverflow over de 301-redirect
Alphamega over htaccess, de basis


6.890 keer gelezen Geschreven door