.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/
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]
RewriteRule \.(gif|jpg)$ http://www.mijndomein.nl/images/gestolen.gif [R,L]
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
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