Het .htaccess
-bestand is een krachtig hulpmiddel dat door Apache-webservers wordt gebruikt om instellingen voor een specifieke map van een website te wijzigen. Hiermee kun je gemakkelijk dingen zoals beveiliging, URL-aanpassingen, foutmeldingen en meer beheren zonder de hoofdsysteeminstellingen te hoeven wijzigen.
In deze cursus leer je de basisprincipes van het werken met .htaccess
-bestanden en hoe je ze kunt gebruiken voor veelvoorkomende taken.
Een .htaccess
-bestand wordt opgeslagen in de hoofdmap of een submap van je website en kan meerdere regels bevatten die direct van invloed zijn op de map waarin het zich bevindt en alle submappen.
# Dit is een commentaarregel, alles na het hekje wordt genegeerd door de server
Options +FollowSymLinks
RewriteEngine On
Redirects worden gebruikt om bezoekers van de ene URL naar een andere om te leiden. Dit is handig als je een pagina hebt verplaatst of een nieuwe URL-structuur hebt.
Redirect 301 /oude-pagina.html http://www.voorbeeld.com/nieuwe-pagina.html
Redirect 302 /oude-pagina.html http://www.voorbeeld.com/tijdelijke-pagina.html
Met directory indexing kun je aangeven welke bestanden als indexpagina's moeten worden behandeld.
DirectoryIndex index.html index.php
Je kunt de toegang tot bepaalde bestanden of mappen beperken op basis van IP-adressen.
Order Deny,Allow
Deny from all
Allow from 123.456.789.000
Met mod_rewrite kun je nette en leesbare URL's creƫren, wat goed is voor de SEO (zoekmachineoptimalisatie) van je website.
RewriteEngine On
RewriteRule ^artikel/([0-9]+)/([a-z\-]+)$ artikel.php?id=$1&title=$2 [L]
Je kunt bepaalde delen van je website met een wachtwoord beveiligen. Dit doe je met twee bestanden: een .htaccess
-bestand en een .htpasswd
-bestand.
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /pad/naar/.htpasswd
Require valid-user
Gebruik een online generator om een versleuteld wachtwoord te maken. Een voorbeeld van zo'n regel in .htpasswd
kan er als volgt uitzien:
user1:$apr1$CQhr2JQN$7iPjo6BJxSlbB/jvB4JHc.
Je kunt aangepaste foutpagina's maken voor verschillende HTTP-statuscodes.
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
Je kunt aangeven hoe bepaalde bestandstypen door de browser moeten worden behandeld.
AddType application/pdf .pdf
AddType image/x-icon .ico
Je kunt caching headers instellen om de prestaties van je website te verbeteren door te specificeren hoe lang bepaalde bestanden moeten worden gecachet.
<filesMatch "\.(jpg|jpeg|png|gif|css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
.htaccess
-bestand om de functionaliteit van de regels uit te leggen. Dit maakt het makkelijker om later wijzigingen aan te brengen..htaccess
-bestanden invloed hebben op de prestaties van je server. Gebruik ze dus met mate en optimaliseer waar mogelijk de serverconfiguratie op een hoger niveau (bijvoorbeeld in de Apache-configuratiebestanden)..htpasswd
buiten de webroot om directe toegang te voorkomen.Het .htaccess
-bestand is een krachtig hulpmiddel voor het beheren van je website. Door de juiste configuraties toe te passen, kun je de beveiliging, prestaties en gebruikerservaring van je website aanzienlijk verbeteren. Experimenteer met de voorbeelden in deze cursus en pas ze aan naar de specifieke behoeften van je website.
In deze oefening leer je hoe je een webpagina kunt beveiligen met een wachtwoord door gebruik te maken van een .htaccess
- en .htpasswd
-bestand.
Maak een nieuwe directory aan op je webserver die je wilt beveiligen. Bijvoorbeeld, maak een directory genaamd beveiligd
.
Maak een nieuw tekstbestand en noem het .htaccess
. Voeg de volgende inhoud toe aan dit bestand:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /pad/naar/.htpasswd
Require valid-user
AuthType Basic
: Dit geeft aan dat we basisverificatie gebruiken.AuthName "Restricted Area"
: Dit is de naam van het beveiligde gebied dat de gebruikers zullen zien wanneer ze proberen toegang te krijgen.AuthUserFile /pad/naar/.htpasswd
: Dit is het pad naar het .htpasswd
-bestand dat de gebruikersnaam en het versleutelde wachtwoord bevat. Zorg ervoor dat je het juiste pad naar je .htpasswd
-bestand opgeeft.Require valid-user
: Dit betekent dat een geldige gebruiker vereist is om toegang te krijgen.Maak een nieuw tekstbestand en noem het .htpasswd
. Gebruik een online generator om een gebruikersnaam en een versleuteld wachtwoord te genereren. Een goede online generator is bijvoorbeeld htpasswd generator.
Gebruik de volgende gebruikersnaam en wachtwoord voor dit voorbeeld:
user_1
test_password
De gegenereerde regel voor het .htpasswd
-bestand ziet er als volgt uit:
user_1:$apr1$3mH.hHf/$7y0hB7e4OEyY0mUBYQfvc1
.htaccess
-bestand naar de directory die je wilt beveiligen (in dit geval de beveiligd
directory)..htpasswd
-bestand naar een veilige locatie op je server, bij voorkeur buiten de webroot (bijvoorbeeld /home/user/.htpasswd
).Zorg ervoor dat het pad naar je .htpasswd
-bestand in het .htaccess
-bestand correct is. Als je het .htpasswd
-bestand hebt geplaatst in /home/user/.htpasswd
, dan moet je .htaccess
-bestand er als volgt uitzien:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/user/.htpasswd
Require valid-user
Navigeer naar de directory in je webbrowser die je hebt beveiligd (bijvoorbeeld http://www.jouwwebsite.com/beveiligd
). Je zou nu gevraagd moeten worden om een gebruikersnaam en wachtwoord in te voeren. Gebruik de gebruikersnaam user_1
en het wachtwoord test_password
.
Als je de bovenstaande stappen hebt gevolgd, heb je succesvol een directory op je website beveiligd met een wachtwoord. Dit is een eenvoudige maar effectieve manier om gevoelige inhoud te beschermen.
Mocht je vragen of problemen hebben, aarzel dan niet om hulp te vragen!