Waarvoor dient .htaccess en wat kan ik ermee doen?

Trefwoorden: htaccess, apache, map afschermen, map beveiligen, error, fout, page, 404, 500, hotlinken
De Apache webserver biedt een aantal opties die je kan activeren d.m.v. een (klein) bestandje (met de naam .htaccess) in een map op je server te plaatsen.

Wat kan je nu net allemaal met deze file doen?
In deze FAQ bespreken we devolgende (veel) gebruikte opties:
  • Een website beveiligen door gebruik te maken van .htpasswd
  • Je eigen errorpages aanmaken(404 - Niet gevonden, 500 - Internal Server Error, ...)
  • Bezoekers verbieden om bepaalde bestandstypen te bekijken
  • Bezoekers omleiden naar een ander adres
  • Hotlinken tegengaan
  • Bezoekers van je site blocken

1) Een website beveiligen door gebruik te maken van .htpasswd

Je bent vast en zeker al wel eens een website tegengekomen die (voor een deel) beveiligd is op deze manier:


http://www.multidesk.be/images/faqs/41/verbindingmakenmet.gif


Ga er van uit dat dit zowat de veiligste manier is die je je maar kan bedenken via http-protocol. Hoe kan je dit verwezenlijken? Wel, redelijk simpel:
  • Je maakt een nieuw tekstbestand aan in de map die je wil beveiligen.
  • Geef deze de naam .htaccess(let op de . voor htaccess). Lukt het je niet dit bestand aan te maken, open dan een ftp sessie naar je website, maak daar een (leeg) bestand aan met de naam .htaccess en download dit.
  • Open deze file met je favoriete plain-text editor(bv Notepad(Kladblok))
  • Geef er de volgende code in:

CODE
  1. AuthName "Gelieve een gebruikersnaam en wachtwoord op te geven"
  2. AuthUserFile /opt/www/web/mijnmap/.htpasswd
  3. AuthGroupFile /dev/null
  4. AuthType Basic
  5. require valid-user
  6.  
  7.  

Open nu Htpasswd.exe (dit wordt standaard bij Apache geleverd).
Je kan het gebruiken als volgt:
htpasswd -c /map_naar_waar_htpasswd_weggeschreven_moet_worden/.htpasswd gebruikersnaam
De optie -c dient om aan te geven dat het bestand weggeschreve moet worden.
Wanneer je nu op Enter drukt, zal je gevraagd worden om ee paswoord in te geven. Dit zal je 2 keer gevraagd worden, ter controle.

Nu gaan we de code eens regel per regel ontleden
CODE
  1. AuthName "Gelieve een gebruikersnaam en wachtwoord op te geven"

Hier vul je de tekst in die moet verschijnen in het kader dat je bezoeker krijgt.

CODE
  1. AuthUserFile /opt/www/web/mijnmap/.htpasswd

Hier vul je het adres is van de map. Als dit niet met een slash begint, dan zal dit als een absoluut pad naar het bestand beschouwd worden. De keuze is dus aan jou. :-)

CODE
  1. AuthName "AuthGroupFile /dev/null

Hier vul je het adres in van het bestand dat een groepnaam bevat als authenticatie. In de meeste gevallen heb je dit niet nodig en kan je gewoon de bovenstaande regel kopiŽren en plakken. Ook hier geldt weer de regel i.v.m. de slash

CODE
  1. AuthType Basic

De manier van validatie van gebruikers. Laat dit gewoon op Basic staan. Naast Basic bestaat er ook nog Digest.
CODE
  1. require valid-user

Deze regel zorgt ervoor dat je je kunt aanmelden als gebruiker. Deze regel kan ook de link naar een tekstbestand met gebruikers bevatten. Bijvoorbeeld
CODE
  1. require leden


Werkt het nog niet?
Als je de file maar niet werkend krijgt, let er dan op dat je een regeleinde onderaan de file zet(lege regel dus). Het is geweten dat dit wel vaker dergelijke problemen oplost.
Als dat nog niet werkt, kijk dan eens ofdat je paden naar je files die het pawoord bevatten correct zijn.
Nog steeds problemen? Plaats je vraag eens in ons forum, 'k ben der zeker van dat je een antwoord gaat krijgen. ;-)

2) Je eigen errorpages aanmaken

Je eigen errorpages maken kan leuk zijn, maar het heeft meer nut dan dat alleen. Je kan je bezoekers een meer gedetailleerd en/of minder technische foutmelding geven, je kan de
gegevens ovre een foutmelding laten opslaan, etc.
De code die we hier zullen bekijken, mag je gewoon in je andere document plakken.

We onderscheiden de volgende (veelgebruikte) errorpages:

  • 301 Moved Permanently
  • 302 Moved Temporarily
  • 400 Bad Request
  • 401 Authorization Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 408 Request Timed Out
  • 415 Unsupported Media Type
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported


Het is mogelijk dat je van sommige nummers nog nooit gehoord hebt. De foutnummers waarvoor meeste webmasters errorpages schrijven zijn 404 & 500.

Basiscode ziet er als volgt uit:

CODE
  1. ErrorDocument [i]foutnummer[/i] /[i]pad_naar_foutdocument[/i]
  2.  
  3.  


Voorbeeld 1:
CODE
  1. ErrorDocument 404 /404.html
  2.  
  3.  


Voorbeeld 2:
CODE
  1. ErrorDocument 500 /error/500.html
  2. ErrorDocument 404 /error/404.html
  3.  
  4.  


Opmerking
Deze foutpagina hoeft niet statisch(.html) te zijn. Het is mogelijk om bijvoorbeeld de datum/tijd, IP-adres van de bezoeker van de foutpagina naar een tekstbestand/database te schrijven. Dit kan handig zijn voor eventueel te debuggen.;-)

Vergeet ook hier weer niet de lege regel op het einde van het document.

3) Bezoekers verbieden om bepaalde bestandstypen te bekijken

Stel je hebt een PHP pagina geschreven, maar je hebt alle includefiles in een map Extra staan. Je wil de bezoekers toelaten om daar je mappen te bladeren, doch zint het idee dat je bezoekers je php include files kunnen zien niet. Je kan dan je files renamen naar naam.inc.php of iets dergelijks, maar als je je filenames wilt behouden (naam.inc), dan kan je deze manier gebruiken:

CODE
  1. * IndexIgnore .inc.php
  2.  
  3.  


Als je de bezoekers de indruk wil geven dat (een) bepaalde map(pen) leeg is, geef je deze code in:

CODE
  1. IndexIgnore *
  2.  
  3.  


4) Bezoekers omleiden naar een ander adres

CODE
  1. Redirect /bestand.php http://www.eensite.be/


Je dient eerst het bestand op te geven welke je wil laten doorlinken, daarna komt het nieuwe adres.
Je kan ook alle bestanden in die map laten doorlinken, gebruik daarvoor deez code:

CODE
  1. Redirect / http://www.eensite.be/


5) Hotlinken tegengaan

Hotlinken van betanden kan een zeer vervelende zaak zijn. Omdat de mogelijkheden redelijk uitgebreid zijn, is er op Multidesk.be een aparte FAQ beschikbaar die deze functionaliteit duidelijk documenteert.

6) Bezoekers van je site blocken

Ook hier hebben we alles netjes gegroepeerd in een aparte FAQ.

Tot zover een (kort) overzicht van enkele functies van .htaccess. Mocht je toch nog met een vraag zitten, aarzel dan niet om een bezoekje te brengen aan onze fora, je zal het je niet beklagen. ;-)Dit artikel werd geschreven door Martijn op donderdag 23 oktober 2003 om 20:12 en werd sindsdien 15164 keer gelezen.

  • Pagina
  • 1 van 1

Bericht geplaatst door Michael Zetter op donderdag 2 september 2004 om 16:36:38.
Michael Zetter heeft nog geen avatar toegevoegd
Multiviteit: 1
Ik zit met een probleem.

Ik kan het htpasswd.exe bestand niet openen en dus ook niet veranderen

Zou iemand mij willen helpen.

Please.
Bericht geplaatst door rObkE op vrijdag 3 september 2004 om 19:00:39.
rObkE heeft nog geen avatar toegevoegd
Multiviteit: 3765

Dixit

Michael Zetter (op 02/09/2004 16:36:38) zei:
Ik zit met een probleem.

Ik kan het htpasswd.exe bestand niet openen en dus ook niet veranderen

Zou iemand mij willen helpen.

Please.
Apache(2)\bin\httpasswd.exe
Bericht geplaatst door een gast op vrijdag 7 april 2006 om 17:01:15.
Je moet met het htpasswd bestand het htaccess bestand aanroepen, die schrijft dan een naam met een gecodeerd wachtwoord erin..

Dit maakt als het ware jou htpasswd file!
Bericht geplaatst door een gast op maandag 29 maart 2010 om 19:14:36.
Lukt niet :(
krijg hele tijd: 401 Authorization Required
  • Pagina
  • 1 van 1