Hoe gebruik ik .htaccess?, deel 2

Toegangsbeveiliging

.htaccess is ook te gebruiken om een website of een bepaalde directory van toegangsbeveiliging te voorzien. Toegangsbeveiliging is iets lastiger omdat de passwoorden voor geauthoriseerde gebruikers moeten worden opgeslagen. deze worden gecodedeerd opgeslagen in een andere file .htpasswd.
In de .htaccess file moeten de volgende commando's komen te staan:

AuthUserFile /home/users/mijndomeinnaam/www/beveiligde_dir/ .htpasswd
AuthName Naam
AuthType Basic
Require valid-user

AuthName geeft de naam aan die in de dialoogbox voor het invoerveld van de naam komt te staan. Achter de code AuthUserFile moet het volledige pad naar je domein komen te staan. Vraag je hosting provider naar het pad als je er niet uitkomt. Of bepaal hem zelf door op je server een phpfile te plaatsen met de volgende inhoud: <?php echo $DOCUMENT_ROOT ?>

Plaats de .htaccess file in de te beveiligen directory. Niet in de root directory dan wordt de hele website beveiligd!

Vervolgens moet de .htpasswd file worden aangemaakt. In deze file komen de gebruikersnamen met de bijbehorende gecodeerde paswoorden te staan. Deze zien er als volgt uit:

marie:NgFQ1vnnW/tJk
ronald:mWaquohh.OY3w
john:EMt8amgnyuYD2

Om de gecodeerde paswoorden te maken kan je gebruik maken van het volgende script

Plaats vervolgens .htpasswd in de te beveiligen directory. Alternatief is om .htpasswd in een directory te plaatsen die nog niet onder de html-root zit, dan kan een webbrowser hem helemaal niet vinden. In dat geval moet AuthUserFile veranderd worden in bijvoorbeeld /home/users/mijndomeinnaam/paswoorden/


Hotlinken voorkomen

Het komt nog wel eens voor dat er vanaf een andere website plaatjes van jouw website zijn te zien. Dit wordt hotlinken genoemd. Om dat te voorkomen heb je de volgende code nodig.

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

Als je de hotlinker wil laten weten dat het niet de bedoeling is om jouw plaatjes te gebruiken, kan je een apart plaatje maken dat wordt getoond als er van hotlinking gebruik wordt gemaakt. Hiervoor moet je de laatste regel van de code vervangen door:

RewriteRule \.(gif|jpg)$ http://www.mijndomein.nl/images/gestolen.gif [R,L]


IP adressen blokkeren

Als je gebruikers van een bepaald IP-adres de toegang tot je website wil ontzeggen, heb je de volgende code nodig:

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
deny from .jeoudewerk.nl
allow from all

De 2e regel sluit de toegang af voor bezoekers die komen van IP-adres 123.45.6.7
De 3e regel sluit de toegang af voor bezoekers die komen van IP-adres reeks 012.34.5.0 tot e met 012.34.5.255
De 4e regel sluit de toegang af voor bezoekers die komen van domein www.jeoudewerk.nl, home.jeoudewerk.nl e.d.


Een redirect maken

Als je website is aangepast is het handig om de bezoekers naar het oude adres automatisch om te leiden naar het nieuwe adres. Hiervoor heb je de volgende code nodig:

Redirect permanent /oude_dir/oud.html http://www.mijndomein.nl/nieuwe_dir/nieuw.html

Let op dat het hier om een commando van één regel gaat.

Het is op deze manier ook mogelijk om alle files van een directory in één keer om te leiden.

Redirect permanent /oude_dir http://www.mijndomein.nl/nieuwe_dir