De naam begint met een punt, waardoor het bestand in veel FTP-programma's en bestandsverkenners standaard onzichtbaar is. Het .htaccess-bestand hoort bij de wereld van Apache: LiteSpeed leest het ook, maar Nginx, Caddy en IIS negeren het. Het is het basisgereedschap bij shared hosting, waar je geen toegang hebt tot de configuratie van de server.
Hoe Apache de .htaccess leest
De documentatie van Apache presenteert het als een manier om de configuratie per map aan te passen voor wie geen rootrechten heeft. Alles hangt af van de directive AllowOverride in de hoofdconfiguratie: de standaardwaarde is None, en dan worden .htaccess-bestanden volledig genegeerd. Hosters zetten het open om permalinks, redirects en beperkingen mogelijk te maken.

Zijn ze toegestaan, dan zoekt Apache in elke map van het opgevraagde pad naar een .htaccess en leest hij die bestanden bij elk verzoek opnieuw. Een wijziging werkt dus meteen, zonder herstart, maar ten koste van extra leesacties. Vandaar het advies van de documentatie: heb je toegang tot de hoofdconfiguratie, zet je regels dan daar in plaats van in .htaccess-bestanden.
Het WordPress-blok
WordPress schrijft in de .htaccess in de root de rewrite-regels waarmee de permalinks werken:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Alles tussen de markeringen # BEGIN WordPress en # END WordPress kan door WordPress worden overschreven, bijvoorbeeld wanneer je de permalinkinstellingen opslaat. Zet je eigen regels buiten deze markeringen, net als die van plugins, die hun eigen blokken toevoegen.
Nuttige beveiligingen
- Directe toegang verbieden tot wp-config.php en tot vergeten gevoelige bestanden, zoals .sql-back-ups, de map .git of debug.log, die we beschrijven in ons artikel over blootgestelde gevoelige bestanden.
- Het uitvoeren van PHP in
wp-content/uploadsverhinderen met een aparte .htaccess voor die map. wp-adminbeperken op IP-adres of met een HTTP-wachtwoord, zoals in onze gids om wp-admin op serverniveau te beschermen.- De hotlinking van je afbeeldingen beperken aan de hand van de Referer-header.
Een syntaxfout geeft meteen een 500-fout voor de hele map: bewaar een kopie van het bestand voor elke wijziging.
Voor WordPress
Op een Nginx-server heeft een .htaccess geen enkel effect: de regels moeten worden vertaald naar het bestand nginx.conf, waarvoor je vaak de hulp van de hoster nodig hebt. Toch gaan veel cache- en beveiligingsplugins uit van de .htaccess. WP Masquerade is er alleen van afhankelijk voor de bestandsaliassen van de Pro-versie, waarvoor het de regels per server genereert, en om zijn eigen map te verbergen: de pagina compatibele servers en caches geeft aan waar je deze regels plaatst, ook bij de Franse hoster o2switch, waar ze vóór het blok van LiteSpeed Cache moeten staan.