nl.internet.www.ontwerp

Apache/.htaccess FAQ

Inhoud

  1. Inleiding
  2. Ik heb een .htaccess bestand geplaatst maar het bestand wordt genegeerd?
  3. Hoe kan ik een bepaalde directory van mijn site afschermen?
  4. Hoe veilig is bescherming d.m.v. .htaccess?
  5. Hoe kan ik mijn eigen errordocumenten gebruiken?
  6. Hoe kan ik een ander default document instellen?
  7. Hoe kan ik voorkomen dat een bepaald bestand door een bezoeker wordt bekeken?
  8. Hoe werkt htaccess nou eigenlijk?
  9. Waar kan ik meer lezen over Auth* ?
  10. Hmmm... "htpasswd", maar waar haal ik dat programma vandaan?
  11. Is er toevallig ook een niet-telnet manier om met .htpassword te werken?

1. Inleiding

Soms is het nodig dat bepaalde delen van een site alleen voor een beperkte groep bezoekers toegankelijk is. De NSCA en Apache webserver-programma's bieden hiervoor een goed middel: .htaccess.

Screenshot inlogschermpje

Htaccess is echter meer dan alleen toegangs-restrictie: het is ook mogelijk om bijvoorbeeld alleen bepaalde bestanden uit te sluiten van weergave in de browser van de bezoeker, of om je eigen errordocumenten (404: "Not found", 500: "Internal server error") te maken.

Deze FAQ bevat een aantal veelgestelde .htaccess vragen in de nieuwsgroep nl.internet.www.ontwerp.
We gaan er vooral van uit dat er wordt gebruik gemaakt van de Apache webserver, niet alleen vanwege onze gebrekkige kennis van NSCA, maar ook omdat Apache het meest gebruikte webserver-programma is.
Opmerkingen, suggesties en kritiek zijn welkom!

top

2. Ik heb een .htaccess bestand geplaatst maar het bestand wordt genegeerd?

De beheerder van de server moet in het configuratie bestand access.conf of httpd.conf de volgende regel aanpassen:

  AllowOverride None

moet worden:

  AllowOverride All

Vervolgens moet Apache herstart worden, onder Linux/Unix met het commando:

  apachectl graceful
Een beschrijving van dit commando en van alle command line opties vind je in de manual page van apachectl.

top

3. Hoe kan ik een bepaalde directory van mijn site afschermen?

Plaats in de betreffende directory een bestand met de naam .htaccess, en de volgende regels:

 AuthUserFile /een/directory/buiten/de/wwwroot/.htpasswd
 AuthGroupFile /dev/null
 AuthName "Mijn Geheime Webstek"
 AuthType Basic

 <Limit GET POST>
 require marieke
 </Limit>

Je kan dit .htaccess aanmaken met bijvoorbeeld vi of notepad. Het is een gewoon tekst bestand, dus het kan met jouw favoriete tekst editor.

Met het programma htpasswd kan je een wachtwoord bestand aanmaken, waar de .htaccess uit leest.
Dit doe je als volgt:

Als je meer gebruikers wilt toevoegen, kan je dus volstaan met:

  htpasswd .htpasswd joke

Let op dat je deze gebruiker ook aan de .htaccess toevoegt, bij het <Limit> gedeelte.

De .htaccess werkt recursief, m.a.w. de onderliggende directories worden ook door de .htaccess beschermt.

top

4. Hoe veilig is bescherming d.m.v. .htaccess?

In .htaccess kun je verschillende beveiligingsmethoden activeren. De meest bekende is HTTP Basic Authentication. Deze biedt enige mate van afscherming, maar omdat het password leesbaar over het Internet wordt getransporteerd geldt deze methode niet als erg veilig. Om een password-afscherming veilig te maken zou je gebruik moeten maken van mod_ssl of Apache-SSL.

Nog enkele opmerkingen:

top

5. Hoe kan ik mijn eigen errordocumenten gebruiken?

Simpel, maar je moet het even weten. Zet het volgende in een .htaccess:

  ErrorDocument 404 /error/404.html
  ErrorDocument 500 /error/500.html

Veelvoorkomende HTTP fout-codes zijn:

Een compleet overzicht van alle HTTP status codes vindt je in de HTTP-standaard.

Extra leuk: maak van de errorpagina een PHP of ASP pagina, die de webmaster per e-mail op de hoogte stelt van de foutmelding, de naam van de gezochte pagina, de referer, enzovoort.

top

6. Hoe kan ik een ander default document instellen?

Een default document is het document dat wordt getoond als je alleen een url in je browser geeft.
Als je bijvoorbeeld http://come.to/niwo ingeeft krijg je het bestand "index.htm" te zien.

Voeg aan de .htaccess de volgende regel toe:

  DirectoryIndex index.php4 index.html

...zorgt ervoor dat index.php4 je standaard document is.

top

7. Hoe kan ik voorkomen dat een bepaald bestand door een bezoeker wordt bekeken?

Soms wil je voorkomen dat een bepaald bestand door de bezoekers van je website direkt bekeken kan worden, bijvoorbeeld als je logingegevens van een database in een include bestand stopt.
Met de volgende regels kan je voorkomen dat bezoekers het bestand kunnen bekijken:

 <Files *.inc>
 Order allow,deny
 Deny from all
 </Files>

top

8. Hoe werkt htaccess nou eigenlijk?

.htaccess is een configuratiefile dat door de web server Apache wordt gelezen.

Enkele bijzonderheden van .htaccess:

top

9. Waar kan ik meer lezen over Auth* ?

In de Apache documentatie:

top

10. Hmmm... "htpasswd", maar waar haal ik dat programma vandaan?

htpasswd is normaal gesproken op de (Linux/Unix) server aanwezig. Als je htpasswd intypt en je krijgt bash: htpasswd: command not found, probeer dan het programma op te sporen met het commando:

  find / -name htpasswd -print 2>/dev/null

Vaak is dat /usr/bin/htpasswd maar soms ook een ander pad. Je kan dan dus:

  /usr/bin/htpasswd -c .htpasswd marieke

doen om het wachtwoordbestand aan te maken. Het wachtwoord bestand wordt dan aangemaakt in de directory waar je op dat moment staat.

top

11. Is er toevallig ook een niet-telnet manier om met .htpassword te werken?

Je kunt ook op je eigen systeem een .htpassword aanmaken en deze uploaden naar de server. Je hebt dan wel een implementatie van het htpasswd programma nodig voor jouw eigen besturingssysteem.

Ook bestaan er verschillende htpasswd gateways die een htpasswd file voor je kunnen maken:

Hoe je zelf zoiets kan maken met php3 staat op: mbn.dk/rod/htpasswd.php

Met dank aan Niels Leenheer.

top

Bijdrage van Gertjan van Laar
aanpassingen door: Rene Pijlman

Laatste wijziging: 11 maart 2002

© 2002 Het NIWO-FAQ Team