URLs herschrijven met mod_rewrite in .htaccess bestand

SEO Tips

In het vorige artikel over onder andere zoekmachine vriendelijke URLs kwamen de URLs met verschillende parameters erin ter sprake:

“Zorg er dus voor dat je http://goedkope.kinderfietsen.nl/index.php?id=2&maat=16&model=giantXRC veranderd in http://goedkope.kinderfietsen.nl/2/16inch/giantXRC “

Maar hoe doe je dat nou? Dit kan allemaal heel simpel met het mod_rewrite pakket. Maak eerst een .htaccess bestand aan met een tekstverwerker zoals kladblok of notepad +. Neem een leeg document en vervolgens kies je de optie opslaan als en voert .htaccess in. Dan kan je beginnen met de code regeltjes invoegen. Eerst moet je de mod_rewrite aanzetten wat we doen via:

RewriteEngine On

Dan gaan we de omschrijvingsregels ingeven. Als we kijken naar de kinderfietsen webshop dan hebben we 3 variabelen achter de domeinnaam staan: 2, 16inch en giantXRC. Die variabelen moeten gewoon door index.php gebruikt kunnen worden. Daaruit volgt

RewriteRule ^/(.*)/(.*)/(.*)/ index.php?id=$1&maat=$2&model=$3

De $1, $2 en $3 komen overeen met de (.*). Dit is eigenlijk de basis en voldoet bij de meeste websites prima. Vaak treden er problemen op als men foto’s in mappen gaat zetten. Als er een foto staat in http://goedkope.kinderfietsen.nl/fotos/giant.jpg dan word dat omgeschreven naar http://goedkope.kinderfietsen.nl/index.php?id=fotos&maat=giant&model= en dat zorgt er dus heel leuk voor dat de foto’s niet worden weergegeven. Om dit te voorkomen voegen we een stukje code toe aan het .htaccess bestand dat eerst kijkt of een bestand bestaat. Als dat het geval is, hoeft er geen herschrijving plaats te vinden.

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]

Het complete .htacces bestand ziet er dan alsvolgt uit:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^/(.*)/(.*)/(.*)/ index.php?id=$1&maat=$2&model=$3

Dit is nog lang niet alles wat je kan bewerkstelligen met de mod_rewrite engine. Meer informatie is te vinden op onderstaande websites:

Trefwoord:         

Gerelateerde berichten:
  • Seo Tips
  • Onpage Zoekmachine Optimalisatie voor (Wordpress) weblogs: haal het beste uit uw artikelen!
  • Pagina titels en zoekmachine vriendelijke URLs – SEO Tips deel 2
  • SEO - Duplicate content: de meest gemaakte en afgestrafte fout
  • Bobbink SEO Tips – Een serie artikelen over zoekmachine optimalisatie


  • 11 reacties op “URLs herschrijven met mod_rewrite in .htaccess bestand”

    1. Gratis tag Zegt:

      De http://url.nl/2/5/Giant kan natuurlijk beter :)

      http://url.nl/giant.html o.i.d. is natuurlijk een koud kunstje met .htaccess. Je kunt het zo mooi maken als je zelf wilt. De vraag is echter of hoe lang het nog duurt dat Google nep HTML pagina’s weer minder gaat bezoeken dan echt HTML pagina’s, zoals dat eerder was met de dynamische URLs.

    2. hans Zegt:

      Werkt goed! eindelijk een tut die goed is!

    3. Thomas Zegt:

      een klein vraagje. nadat ik het htacces bestand heb gemaakt, hoe moet ik dan linken.

      met: index.php?id=2&maat=16
      of: index/2/16

    4. Bobbink Zegt:

      Hallo Thomas,

      Met de tweede optie natuurlijk, die staat toch het mooiste en meest simpel?

    5. Large Hamster Cage Zegt:

      thanks, very useful information. I have been looking for something like this for a long time.

    6. Oussama Zegt:

      GEWELDIGE WEBSITE !

    7. Inge Zegt:

      Ik ben al even aan het zoeken naar antwoorden, maar ik kom er niet helemaal uit. Ik zou graag URL:www.DreamsAndWishes.nl/cor_en_danielle willen laten redirecten naar de bestaande webpagina www.DreamsAndWishes.nl/cor_en_danielle.HTML

      Oftewel ik zou alleen de .html willen laten vervallen.

      Hoe doe ik dit dan?

      Alvast bedankt,

      groeten,

      Inge
      p.s. mijn website is heel simpel in HTML gemaakt dus ik gebruik (nog) geen CMS a la drouple of Joomla

    8. Jan-Willem Zegt:

      Hallo Inge,

      Ik heb het niet uitgeprobeerd, maar ik denk dat het volgende wel werkt:

      RewriteRule ^(.*)? $1.html [L]

    9. Jeroen Zegt:

      Hallo, ik las deze tutorial, heel fijn dat het werkt!
      Ik heb echter een vraagje,

      http://www.pservice.be/joeke/index/125/ =
      http://www.pservice.be/joeke/index.php?menu_id=125

      Wanneer menu_id gelijk is aan 125 komt er “het werkt” te staan

      Hoe moet ik strings uit de url halen om het bovenste te verwezenlijke met de nieuwe link: http://www.pservice.be/joeke/index/125/

      Groetjes
      Jeroen

    10. Inge Zegt:

      Excuus voor de late reactie, maar beter laat dan nooit:

      Hartelijk dank Jan Willem, ik ga het direct uitproberen!

      Groeten,
      Inge

    11. Casinos Zegt:

      Als de nieuwe links zijn geindexeerd moet er nog steeds de 301 rewrite code in blijven staan waarom is het niet mogelijk om dit in de google webmaster tools aan te geven.?

    Laat een reactie achter

    Berichten RSS