Htaccess - Wachtwoorden instellen op map / bestand


Met behulp van .htaccess is er eenvoudig de mogelijkheid om een map te beveiligen met een gebruikersnaam en wachtwoord. Om dit in te stellen op een map op je website maak eerst het reguliere .htaccess bestand en plaatst deze in de map die je wilt beveiligen.

Maak met kladblok of notepad een bestand aan en zet deze code erin,

AuthName "WebSonic.nl Beveiligde map"
AuthType Basic
AuthUserFile /hetpadnaar/.htpasswd

<limit GET>
Require valid-user
</Limit>


Sla dit op als ".htaccess", let op de punt en let op de exacte schrijfwijze.

In de code op de eerste regel achter "AuthName" kun je een eigen tekst invoeren die terugkomt in de melding die de bezoeker te zien krijgt bij het bezoeken van de map. Een screenshot hiervan onderaan de pagina.

Achter de regel "AuthUserFile" moet het pad ingevuld worden van het tweede bestand wat nog aangemaakt moet worden waarin de gebruikersgegevens staan om in te loggen. Maak als eerste dit bestaand aan en sla deze op als .htpasswd en let op de schrijfwijze.

Het pad dat wordt ingevuld achter "AuthUserFile" moet een absoluut pad zijn vanaf de Root van je website, dit kan bijvoorbeeld zijn, "/home/gebruikersnaam/". Mocht je dit niet weten kun je eenvoudig het pad achterhalen met behulp van een klein PHP script. Meer informatie in de tutorial hier: Absoluut pad achterhalen.

Dan moeten er nog de gegevens ingevoerd worden in het htpasswd bestand om gebruikers te laten inloggen. De gegevens die je hier invoerd moeten versleuteld worden anders werkt het inloggen niet. Het versleutelen van deze bestanden kan met behulp van de .htaccess password generator hier op de website. Upload dan beide bestanden naar de juiste locaties en het wachtwoord is ingesteld op de gewenste map met inhoud.

Naast een wachtwoord instellen op een map kun je ook met .htaccess een wachtwoord instellen op 1 of meerdere bestanden. Hiervoor moet de bestandsnaam worden geplaatst in het bestand, dit wordt dan als volgt. Het wachtwoord wordt dan alleen voor dit bestand ingesteld en verder niet op andere bestanden in dezelfde map.

AuthName "WebSonic.nl Beveiligde map"
AuthType Basic
AuthUserFile /hetpadnaar/.htpasswd

<files bestandsnaam.html>
Require valid-user
</files>


Om nu meerdere bestanden te beveiligen plaats je het gedeelte met de bestandsnaam steeds opnieuw zoals hieronder.

AuthName "WebSonic.nl Beveiligde map"
AuthType Basic
AuthUserFile /hetpadnaar/.htpasswd

<files bestandsnaam.html>
Require valid-user
</files>
<files bestandsnaam2.html>
Require valid-user
</files>


Wachtwoorden instellen

De naam .htaccess is een extensie. Eigenlijk heeft het bestandje dus geen naam maar alleen de extensie "htaccess" (voorbeelden van extensies zijn ".jpg" ".txt" ".doc"). Controleer in je FTP programma of de bestandsnaam daadwerkelijk ".htaccess" is, en niet ".htaccess.txt" of " .htaccess.doc". Verander dit eventueel op de server via je ftp programma, dat het bestand alleen .htaccess heet. Ditzelfde geld dan voor htpasswd.

Aanvullende op de bovenstaande tutorial kun je een extra regel toevoegen die bezoekers naar een andere pagina doorsturen als het inloggen niet is gelukt. Hiermee vervang je de automatisch melding "401 Authorization Required".

Hoe je dit doet vindt je hier, je maakt dan gebruik van de 401 code.

Groepen

Als aanvulling op bovenstaande is het ook mogelijk om groepen aan te maken waar gebruikers onder vallen. Bijvoorbeeld op deze manier als je twee mappen hebt op je website kun je 1 groep toegang geven tot de eerste map en een andere groep toegang geven tot de tweede map. De groepen hebben dan geen toegang tot elkaars mappen.

Om groepen te gebruiken maak je naast het .htaccess en .htpasswd een .htgroup bestand aan. In het .htpasswd staan gebruikers inclusief hun wachtwoorden, binnen het .htgroup bestand maak je de groepen aan en ken je gebruikers toe aan groepen.

Hieronder een voorbeeld van een .htgroup bestand waarin gebruiker "test" is toegewezen aan groep1 en gebruiker "websonic" is toegewezen aan groep2.

groep1: test
groep2: websonic


In het .htaccess bestand wordt dan een extra regel opgenomen met een verwijzing naar het .htgroup bestand, dit wordt dan,

AuthGroupFile /hetpadnaar/.htgroup


In het totale .htaccess bestand wordt het dan als volgt. In het onderstaande voorbeeld worden groepen toegekend aan bestanden, op deze zelfde manier kun je groepen gebruiken voor mappen alleen plaatst je dan het .htaccess bestand op de bovenstaande manier in de map en maak je gebruik van 1 .htgroup en .htaccess bestand.

AuthName "WebSonic.nl Beveiligde map"
AuthType Basic
AuthUserFile /hetpadnaar/.htpasswd
AuthGroupFile /hetpadnaar/.htgroup

<files bestandsnaam.html>
Require group groep1
</files>
<files bestandsnaam2.html>
Require group groep1
</files>


Bij het toepassen op een map,

AuthName "WebSonic.nl Beveiligde map"
AuthType Basic
AuthUserFile /hetpadnaar/.htpasswd
AuthGroupFile /hetpadnaar/.htgroup

<limit GET>
Require group
</Limit>

URL

Als je eenmaal een wachtwoord hebt ingesteld kan deze meegestuurd worden via de url zodat diegene automatisch kan inloggen. Een url ziet er in dat geval bijvoorbeeld als volgt uit waarbij oranje de gebruikersnaam is en password het wachtwoord.

http://oranje:password@www.websonic.nl/

Override

Het wachtwoord overrulen voor een specifieke map kan met de onderstaande code.

Satisfy Any
Order Allow,Deny
Allow from all