Wat is .htaccess?

27 augustus, 2014
Vragen & antwoorden
Webhosting, Apache, Htaccess

.htaccess, een afkorting van hypertext access, is een configuratiebestand dat op map-niveau het gedrag van de Apache HTTP Server kan beïnvloeden. Zo kunnen bestaande configuratieregels overschreven worden voor bepaalde webpagina's, zonder dat het gecentraliseerde configuratiebestand van de webserver (httpd.conf) hoeft worden aangepast. Op deze manier is het mogelijk om per individuele map bijvoorbeeld de toegangsregels aan te passen, of URLs te herschrijven.

Vergeleken met httpd.conf is het aantal mogelijke configuratieregels in een .htaccess-bestand beperkt. De meest toegepaste functie van het bestand is het herschrijven van URLs, met dank aan de mod_rewrite-extensie, waarbij van een ingewikkeld webadres zoals "/index.php?id=30&naam=nieuwsartikel&jaar=2014" een leesbaar alternatief wordt gemaakt, zoals "/2014/nieuwsartikel-30". Onder meer contentmanagementsystemen zoals WordPress maken hier gebruik van.

Alle regels uit een .htaccess-bestand kunnen echter wel in het httpd.conf-bestand geïmplementeerd worden, en dit geniet doorgaans de voorkeur (wanneer mogelijk) omdat dan niet voor elk HTTP-verzoek naar het .htaccess-bestand gezocht hoeft te worden, wat de snelheid van de server niet ten goede komt. Een voordeel van .htaccess is dat wijzigingen onmiddelijk effect hebben. Omdat gebruikers van een shared hosting-omgeving geen directe toegang hebben tot het configuratiebestand van de webserver, is een .htaccess-bestand vooral een manier om hen meer vrijheid te geven bij het configureren van hun websites.

Een .htaccess-bestand begint, net als .htpasswd, met een punt, waardoor het op Linux-systemen automatisch een verborgen bestand wordt. Dat betekent ook dat het in bijvoorbeeld een FTP-programma onzichtbaar kan zijn voor de gebruiker, tenzij de instellingen worden aangepast om verborgen bestanden weer te geven.

Ieder .htaccess-bestand heeft alleen effect op de map waarin hij geplaatst is, en alle onderliggende bestanden en mappen.