Wat is een .htaccess bestand?
Het .htaccess bestand is een tekstbestandje waarmee je zaken kunt uitvoeren en sommige (server-)instellingen kunt omzeilen of wijzigen. Dit bestand kan worden gebruikt voor onder andere blokkades, verwijzingen (redirects), rewrites en het dichten van lekken. Je kunt een .htaccess bestand maken met een simpele teksteditor (bijvoorbeeld Kladblok of NotePad) en deze vervolgens in een map plaatsen waarop deze wijzigingen toegepast moeten worden. Dit bestand wordt vaak standaard geplaatst in de root van jouw website (public_html), maar kan ook aangemaakt worden in onderliggende mappen.
Hoe maak je een .htaccess bestand aan?
1. Open een simpele tekst-editor zoals Notepad of Kladblok.
2. Een .htaccess bestand is eenvoudig aan te maken in een map onder de root van jouw website (public_html). Bij de meeste websites staat het bestand in de root. Zie hieronder een voorbeeld van een WordPress website:
3. Maak een nieuw bestand aan en zet de code in het bestand.
4. Sla het bestand op als .htaccess (vergeet de punt niet, aanhalingstekens weglaten).
Let op: scherm de var, dev, en .git map af om te voorkomen dat hackers hier toegang tot krijgen.
Toepassingen van het .htaccess bestand
Wanneer er een .htaccess bestand in een map staat zal de webserver het verkeer afhandelen via de regels die erin staan. Voorbeelden van regels zijn het afdwingen van HTTPS, het redirecten naar een andere site of pagina, of het blokkeren van IP-adressen.
Redirecten
Wanneer een pagina al geïndexeerd is door een zoekmachine is het beter om een pagina door te verwijzen in plaats van een dode link (hyperlink naar een webpagina die niet (meer) bestaat) achter te laten. Jouw website zal hierdoor hoger in de zoekresultaten zal komen te staan.
redirect 301 /oudepagina.html /nieuwepagina.html
Mocht je naar een heel ander domein willen redirecten, dan kun je onderstaande gebruiken:
RewriteCond %{HTTP_HOST} ^www\.domeinnaam\.nl [NC,OR] RewriteCond %{HTTP_HOST} ^domeinnaam\.nl [NC] RewriteRule ^(.*)$ http://www.nieuwedomein.com/$1 [R=301,L] Domeinnaam.nl is hier de oude domeinnaam;
nieuwedomein.com is het nieuwe domein.
Foutmeldingen
Soms is er de wens om foutmeldingen met opmaak en eigen tekst etc. te gebruiken. Dit kan eenvoudig worden ingesteld met regels in het .htaccess bestand. Bijvoorbeeld de ‘404 Not Found’ foutmelding kan eenvoudig worden aangepast.
ErrorDocument 404 /pad-naar-bestand/niet-gevonden.html
IP-adressen black-/ whitelisten
De site, gedeelten van de site en mappen kunnen afgeschermd worden met een .htaccess bestand. Met de onderstaande regels kun je bijvoorbeeld IP-adressen blokkeren.
order allow,deny
deny from 1.1.1.1
allow from all
Wanneer er de wens is om het omgekeerde te doen, dus om alles te blokkeren en een aantal IP-adressen toe te laten:
order deny,allow
deny from all
allow from 1.1.1.1
Let op: Wijzig 1.1.1.1 in het IP-adres die toegelaten of geblokkeerd moet worden.
Voor meer informatie: https://httpd.apache.org/docs/current/howto/htaccess.html
Ander indexbestand gebruiken
Wanneer er de wens is om een index bestand (het bestand dat geladen wordt wanneer je de website invult) met een andere naam voorrang te geven kan dit aangegeven worden in het .htaccess bestand in de root:
DirectoryIndex startpagina.html
Voorbeelden van gevallen waarin dit gebruikt kan worden zijn handmatige onderhouds pagina's of mededelingen.
Een onderhoudspagina instellen (met redirect)
Als we een onderhoudspagina in willen stellen (omdat de site opnieuw opgebouwd wordt, of om andere redenen, en al het verkeer moet worden afgevangen, dan kun je het volgende gebruiken:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^([A-Za-z0-9-\/&_]+)/?$ maintenance.html?etc=$1 [L,302]
Mocht je zelf nog wel bij de website willen, dan kunt je jouw IP-adres uitzonderen. Vervang dan het IP-adres 100.100.100.100 uit onderstaande voorbeeld met jouw eigen IP-adres:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^100\.100\.100\.100
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^.*$ /maintenance.html [L,R=302]
Het bestand maintenance.html is de pagina met jouw mededeling.
Het afdwingen van HTTPS
Voor het afdwingen van HTTPS zijn er meerdere opties die van toepassing kunnen zijn, zoals het redirecten naar SSL/HTTPS, maar de meest gangbare manier is om dit via de methoden te doen die bij jouw website past, voordat je het via .htaccess gaat afdwingen.
Bekijk de volgende hulpartikelen afhankelijk van jouw CMS:
Vaak is het in de .htaccess al niet nodig en veroorzaakt het onnodig (veel) problemen. Mocht je het ondanks alles toch via de .htaccess willen afdwingen, dan kan dat met volgende regels:
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Voor aanvullende beveiliging kun je na het afdwingen van HTTPs, ook kijken naar aanvullende beveiliging met HSTS:
Het forceren van HSTS in een .htaccess bestand.
Toch nog vragen? Maak een ticket aan of mail naar