Het leek me wel een aardig idee om naar aanleiding van de Zoekmachine Optimalisatie maand deel 11 van Kletskous via een post wat uitleg te geven over .htaccess en 301 Redirects
Ja hoor, Techniek zeker weer
Zeker, maar wel een hele belangrijke en eigenlijk lang niet zo moeilijk als je in eerste instantie zou denken.
Je zult waarschijnlijk toch niet alle mogelijkheden die er zijn met dit bestand gaan gebruiken
Waarvoor heb je een .htaccess nodig.
De belangrijkste reden voor het gebruik van een .htaccess bestand in de Zoekmachine Optimalisatie wereld is dat je daarmee vanuit een Content Management Systeem hele mooie URLs kunt maken.
Dis in plaats van www.example.com/index.php?option=com_frontpage&Itemid=1
Krijg je dan www.example.com/index.html
Als je dat wilt tenminste, maar voor Zoekmachine Optimalisatie werkt dit prima.
Voorwaarden voor het gebruik van een .htaccess bestand
Om deze actie uit te kunnen voeren met bijvoorbeeld een Joomla CMS of WordPress moet er wel aan een aantal zaken voldaan worden.
1. Je Hosting Provider met wel toelaten dat je een eigen .htaccess bestand mag plaatsen
2. Je website wordt gehost op een linux of unix gebaseerde machine, met Windows lukt die niet.
3. Je Web Server software is Apache en niet Internet Information Server.
4. Heel belangrijk is dat de Apache module MOD_Rewrite is geactiveerd.
Nu voldoen de meeste Hosting Providers wel al standaard aan die vereisten.
Wat kun je dan met een .htaccess bestand regelen
O, een hele boel !!
En dat varieert van het herschrijven van URLs tot het beschermen van Directory tegen ongeautoriseerde toegang.
Voor nog meer uitleg kun je rustig eens verder lezen op http://www.javascriptkit.com/howto/htaccess.shtml
Ik beperk me hier even tot de URL rewrites voor WordPress en Joomla, en het gebruik van 301 Redirects.
Bij WordPress wordt de inhoud van je .htaccess weergegeven afhankelijk van de optie's die je selecteerd bij je Permalinks.
En als je .htaccess er al is en beschreven kan worden, dan is het direct klaar.
Meestal moet je bij een eerste installatie zelf de inhoud van het onderste veld: (Let op, dit is een voorbeeld!!) dus gebruik die van jezelf…
< IfModule mod_rewrite.c >
RewriteEngine On
RewriteBase /seo-blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /seo-blog/index.php [L]
< /IfModule >
Kopieren en plakken in bijvoorbeeld een notepad bestand dat je de juiste naam geeft, of htaccess.txt
Dit bestand wordt daarna met een FTP programma in de Basis (Root) map van je site of cms geplaatst.
Als je het met htaccess.txt geupload hebt, dan moet je het hernoemen naar .htaccess, en daarmee verdwijnt het bij de meeste FTP programma's uit beeld.
In Fillezilla kun je wel aangeven dat je ook de hiddenfiles wilt zien.
Bij Joomla krijg je al een .htaccess bestand mee, maar dat is wat complexer en vraagt wat kleine aanpassingen afhankelijk van het feit of je wel of geen rewrite component gebruikt.
Daarover kun je (nu nog in het engels) meer lezen in little-joomla-seo-book.html
De 301 Redirect in .htaccess
Een 301 Redirect is vooral van belang als je een website zodanig gaat wijzigen dat de URLs van de pagina's veranderen.
Dan wil je eigenlijk je oude goede rankings in de zoekmachine's wel bewaren, ik in ieder geval wel
Toevallig heb ik enige tijd geleden een van mijn website omgezet van Mambo naar Joomla en daarbij direct van de gelegenheid gebruik gemaakt om een subdomain een eigen domein te geven.
Maar er waren natuurlijk wel een aantal links naar die submap in de zoekmachines..
Dus heb ik een regel in de .htaccess gezet:
redirect 301 /networkdna/index.php http://www.network-documentation.com/index.php
Dit houd in dat als de map /networkdna/index.php aangeroepen wordt, deze automatisch door de server door gestuurd wordt naar de nieuwe locatie.
Het grote voordeel hiervan, ten opzichte van een HTML gebaseerde redirect, is dat de zoekmachines nu ook weten dat die pagina Permanent verplaatst is !!
Want dat is de definite van een 301 Redirect code.
Voor iedere pagina URL die je veranderend hebt, kun je dan een redirect opgeven
Let er wel op dat voor de eerste optie alijd geredeneerd wordt vanuit de root van je website, dus je eerste optie is relatief vanuit je sitenaam, daarna verwijs je naar de volledige nieuwe URL
Redirect 301 /old/old.html http://www.example.com/new.html
En als je dit goed doet, zul je weinig tot niets merken van enig verval in je zoekmachine resultaten pagina's positie.
En kun je dus de door Magie van een .htaccess bestand je website omzetten naar een nog beter presterende, zonder dat je je oude links verliest..
Catharina zegt
Inderdaad, heel aardig; mijn dank is groot!
ruben zegt
Weet je ook hoe ik dit kan doen voor asp.net sites?
Hummerbie zegt
@Ruben
Helaas is de rewrite functie in IIS met ASP pages wat lastiger, hier kun je wat meer info daarover vinden.
http://www.seoconsultants.com/windows/isapi/
Met asp pages in een Apache omgeving heb ik geen ervaring, maar misschien een van de andere lezers van deze Blog..
Reacties zijn altijd welkom.
ruben zegt
bedankt
greetz ruben
Styling Designs zegt
In het genoemde little-joomla-seo-book.html staat erg handige informatie over htaccess bestand en Joomla. Bij Styling Designs gebruiken we de plugin sh404SEF en het htacces bestand om seo vriendelijke url’s te maken en om Joomla sites te beschermen tegen hackers en andere kwaadwillenden. Deze plugin is zeer aan te bevelen.
Marc S zegt
Mocht het nou zo zijn dat je toch op een windows bak werkt.
Is er dan een mogelijkheid om toch met htaccess te werken?
Misschien met een omweg?
Of zijn er andere oplossingen voor?
THNX
Herbert-Jan van Dinther zegt
@Marc S: Voor Joomla kun je sh404SEF installeren, of een andere SEF component en dan in de (advanced) configuratie kiezen voor “without ,htaccess”.
Bij Joomla heb je ook de mogeijkheid om alleen met de standaard SEF optie te werken en dan kies je ook daar “zonder .htaccess”
Voor WordPress, en wellicht ook andere systemen waar je met SEF urls of Permalinks werkt, gebruik je de optie custom permalink: index.php/%postname%/
Het enige nadeel is dan dat je urls ook die /index.php/ zichtbaar is.
(P.s. Altijd eerst goed testen en zeker als je al goed in de zoekmachines scoort controleren of je links vanuit die zoekmachines nog steeds werken!
Marc van Leeuwen zegt
@Herbert-Jan van Dinther je kan in WordPress natuurlijk ook index.php weglaten dus dan krijg je alleen /%postname%/ dat werkt bij mij in ieder geval! Ik vraag me alleen nog steeds af hoe ik in een bij een ‘gewone’ website (nu nog testomgeving) mijndomein.nl/life/index.php?page=info verander in mijndomein.nl/life/info. Als iemand daar een heldere uitleg over heeft graag! Snap alle online info niet zo goed..