Een htaccess bestand gebruiken op je website en htaccess codes


Bepaal de juiste keywords/zoekwoorden voor je websiteMet een .htaccess bestand kun je allerlei dingen bereiken, zoals: het maken van foutpagina’s voor je site, een directory afsluiten, IP-adressen blokkeren en nog veel meer. Een htaccess bestand is eigenlijk een gewoon tekst bestand met daarin instructies die ergens op de server van je webshost staat; meestal in de root van je website. ‘ht’ verwijst naar ‘HTTP’, en access betekent ‘toegang’. Nadat je een htaccess bestand hebt geupload op je webserver moet je de bestandsnaam veranderen in .htaccess, dus zonder een extensie! Het kan zijn dat als je de extensie weggehaald hebt, dat het htaccess bestand verdwijnt. Het staat er nog wel, maar het is onzichtbaar.

Wat heb je nodig om een htaccess bestand te gebruiken?

Om een htaccess bestand te kunnen gebruiken moet je website op een Apache webserver draaien. Vrijwel alle webhosts ondersteunen dit. Soms wordt het alleen ingeschakeld als je het aanvraagt bij je webhost. Als je een htaccess bestand aanmaakt in een subdirectory, dan over-ruled deze die van de root en deze geldt dan alleen voor de directory waar hij in staat. Het is dus mogelijk om meerdere htaccess bestanden te maken (ieder in een eigen directory).

Een .htaccess bestand heeft vele functies

Met een .htaccess bestand kun je onder andere de volgende dingen: 404 error pagina’s maken, redirects make, directories beveiligen, direct linken van plaatjes tegengaan, ipadressen van bepaalde bezoekers blokkeren, kiezen voor urls met of zonder www, HTML bestanden als een PHP bestand laten parsen, en nog veel meer. In de volgende alinea’s van dit artikel worden een aantal dingen beschreven die je kan doen met een .htaccess bestand.

Het direct linken van plaatjes tegengaan

Als je veel foto’s of plaatjes op je website hebt staan dan kan het zijn dat andere webmasters je plaatjes gaan stelen. Dit kan op diverse manieren; één van de manieren is dat de webmaster een <img>-tag op zijn website plaatst waarmee het plaatje rechtstreeks vanaf jouw server geladen wordt. Dit kan jou enorm veel dataverkeer opleveren en dus geld kosten. Om dit te voorkomen kan je een “Mod Rewrite” maken in een htaccess bestand. Let op: je webhost moet wel Mod Rewrite geïnstalleerd hebben op de webserver. Soms moet je je webhost vragen om deze instelling te activeren.

Onderstaande mod rewrite code werkt in veel gevallen. Het vereist dat de browser de pagina (referrer) doorgeeft waarvandaan het plaatje opgevraagd wordt. De meeste browsers zullen dit inderdaad doen.

De volgende code plaats je in je .htaccess bestand, die je vervolgens upload naar de directory waar de plaatjes staan:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?jouwdomeinnaam.nl/.*$ [NC]
RewriteRule \.(gif|jpg)$ – [F]

Met deze code zorg je ervoor dat er niet meer direct naar gif en jpeg bestanden gelinkt kan worden. Als een andere webmaster dit toch op zijn website probeert, dan verschijnt er geen plaatje op de website maar een foutmelding. Op dezelfde manier kun je andere bestanden beschermen.

Ipadressen van bepaalde bezoekers blokkeren

Soms is het noodzakelijk, om bepaalde bezoekers van je website te weren. Dit kan bijvoorbeeld zijn omdat iemand op je website spamt, of je wilt een bepaalde robot van een zoekmachine niet op je website hebben. Met een htaccess bestand kun je het IP-adres van zo iemand blokkeren. Je moet dan wel zijn IP-adres weten. Een IP-adres is vaak wel te achterhalen door middel van bepaalde applicaties op je website of in de logfiles van je site. Als je bijvoorbeeld een gastenboek of forum op je website gebruikt zitten daar vaak webtools in die het ip-adres van je bezoekers weer geven.

Als je het IP-adres hebt achterhaald kun je het .htaccess bestand maken. Of de code toevoegen aan je reeds bestaande .htaccess file. De code die je kunt gebruiken:

order allow,deny
deny from 121.56.7.8
allow from all

Nu wordt de bezoeker met het (fictieve) IP-adres 121.56.7.8 van je site geweerd. Hij krijgt een foutmelding te zien als hij op de website probeert te komen. Als je meerdere IP-adressen wilt blokkeren dan kun je elk IP-adres op een volgende regel zetten:

order allow,deny
deny from 121.56.7.8
deny from 124.5.66.11
deny from 64.40.10.2
allow from all

Ook is het mogelijk om in plaats van aparte ip-adressen een hele IP-range te blokkeren. Sommige bezoekers gebruiken namelijk een proxy server om verbinding te maken met internet, en krijgen daardoor telkens een nieuw IP-adres als er een nieuwe verbinding wordt gemaakt (123.45.6.7, 123.45.6.8, enzovoorts). Om een IP-range te blokkeren laat je het laatste punt en cijfer van het ip-adres weg, bijvoorbeeld 130.0.0. Nu worden alle bezoekers met een IP-adres van 130.0.0.0 tot en met 130.0.0.255 van je website geweerd.

In plaats van numerieke adressen kun je ook domeinnamen en subdomeinen gebruiken:

order allow,deny
deny from zethierdedomeinnaam.nl
allow from all

Toegang tot .htaccess ontzeggen

Het kan voorkomen dat bezoekers van je website willen weten wat er allemaal in je htacces staat. Om dit te voorkomen plaats je het volgende script in je .htaccess bestand:

<Files .htaccess>
order allow,deny
deny from all
</Files>

Bovenstaande code is dus om je htaccess bestand te beschermen, maar op dezelfde manier kun je ook andere bestanden en folders beschermen.

301 en 302 redirects

Het kan voorkomen dat een website een verschillende pagarank heeft als de website met de www en zonder de www in de url wordt bekeken. Dit komt omdat Google denkt dat het twee verschillende websites zijn. Omdat de content dan bij beide sites gelijk is krijgen beide sites bovendien een lagere pagerank. Met behulp van een 301 redirect kan je bezoekers en zoekmachines laten weten dat het één en dezelfde website is.

Met een 301 redirect kun je aangeven dat een pagina ergens anders gevonden kan worden. Een 301 redirect is een permanente redirect, maar soms is het handig als de redirect maar tijdelijk is: in dat geval gebruik je een 302 redirect.

Een 301 redirect instellen in je htaccess bestand:

Redirect naar www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^voorbeeld\.com [NC]
RewriteRule ^(.*)$ http://www.voorbeeld.com/$1 [L,R=301]

Redirect naar none-www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.voorbeeld\.com [NC]
RewriteRule ^(.*)$ http://voorbeeld.com/$1 [L,R=301]

Of in sommige gevallen volstaat:
Redirect 301 /oudelocatie.html http://jewebsite.nl/nieuwelocatie.html

Je kan een 301 redirect ook gebruiken als je een hele nieuwe domeinnaam gaat gebruiken.
redirect 301 / http://www.nieuwedomeinnaam.nl/

De eerste “/” geeft aan dat alles verplaatst is. Als je dezelfde paden en namen gebruikt voor het nieuwe domein is dit voldoende.

Zie ook het artikel: Een 301 redirect maken

404 error pagina

Het kan voorkomen dat bezoekers van je website een verkeerde url intypen. Of ze klikken op een link op je website die dood loopt. De browser van je bezoeker zal automatisch een standaard 404-pagina genereren met de foutmelding: ‘The page cannot be found’. Deze standaard 404 pagina wil je als webmaster natuurlijk niet: Je wilt een gebruikersvriendelijke 404 error pagina, zodat mensen op je site blijven en weer terug komen. In je favoriete html editor kun je een 404 html pagina naar wens maken en opslaan als 404.html. Vervolgens gebruik je de volgende code in een nieuw, of al bestaand, .htaccess-bestand in de root van je website:
ErrorDocument 404 /404.html
Indien je 404.html (je mag de htmlfile ook anders noemen) bijvoorbeeld in een subdirectory “errors” staat dan wordt de code als volgt:
ErrorDocument 404 /errors/404.html