.htaccess: klein bestand, grote gevolgen

Er is een bestand op je server dat de meeste mensen nooit zien. Het begint met een punt, waardoor het standaard verborgen is. Toch bepaalt het van alles. Welke adressen werken, waar bezoekers heen gaan en wie er ergens bij mag. Een typefout erin en je hele website is onbereikbaar.

Dat klinkt dreigend, en dat is het ook een beetje. Maar het is ook het gereedschap waarmee je verhuizingen soepel laat verlopen.

Bij Vegas Party Verhuur kwam dat van pas. Ik verzorgde daar het webdesign en de vindbaarheid. Bij het opnieuw indelen van de site veranderden een aantal adressen.

Ik heb die oude adressen via dit bestand doorgestuurd naar hun nieuwe plek. Bezoekers uit Google en uit oude mails kwamen daardoor gewoon uit waar ze moesten zijn. Zonder die regels had elke oude link een foutmelding opgeleverd.

.htaccess uitgelegd in het webdesign woordenboek van Project Direct
Een klein bestand met veel macht over je hele website.

Wat is .htaccess?

Het is een configuratiebestand dat je server leest voordat hij een pagina toont. Daarin staan serverregels die gelden voor de map waarin het staat en alles daaronder.

Het werkt alleen op servers met Apache, wat bij de meeste hostingpakketten het geval is. Draait je site op een andere server, dan heet het anders en werkt het anders.

Waar het staat

In de hoofdmap van je website, naast je andere bestanden. Omdat de naam met een punt begint, is het verborgen.

Je moet in je programma dus verborgen bestanden aanzetten om het te zien. Meer over die toegang lees je bij FTP.

Waar je het voor gebruikt

Doorverwijzingen

Dit is veruit het meest voorkomende gebruik. Bij het doorverwijzingen instellen stuur je een oud adres naar een nieuw adres.

Je gebruikt het bij een nieuwe website en bij het hernoemen van een pagina. Ook om een versie met of zonder www af te dwingen. Meer daarover lees je bij redirect.

Beveiliging

Je kunt hiermee mappen afschermen of bepaalde bestanden onbereikbaar maken. Ook het toegang afschermen met een wachtwoord regel je hier, bijvoorbeeld voor een testomgeving.

Daarnaast dwing je er een beveiligde verbinding mee af, zodat iedereen automatisch op HTTPS uitkomt.

Foutafhandeling

Bij het foutmeldingen afvangen wijs je aan welke pagina getoond wordt als er iets niet bestaat. Zo krijgt een bezoeker jouw eigen pagina te zien in plaats van een kale servermelding. Meer daarover lees je bij error 404.

Waarom het misgaat

Omdat er geen foutmelding komt die je helpt. Zet je een letter verkeerd, dan geeft je hele site een serverfout. Niet alleen de pagina waar het over ging.

Mijn vaste volgorde bij het bestand bewerken

  1. Eerst een back-up maken van het bestaande bestand.
  2. Wijziging aanbrengen op een kopie van de site.
  3. Testen: homepage, een dienstenpagina en een formulier.
  4. Pas daarna live zetten.
  5. Direct controleren, niet pas de volgende dag.

Die eerste stap is niet optioneel. Gaat het mis, dan zet je het oude bestand terug en werkt alles weer.

Heb je het nodig bij WordPress?

Ja, maar meestal zonder dat je het merkt. WordPress schrijft er zelf regels in voor je mooie adressen.

Verdwijnt dat bestand, dan geeft elke pagina behalve je homepage een foutmelding. Dat is een klassiek probleem na een verhuizing.

Zelf regels toevoegen doe je onder de regels die WordPress beheert, nooit ertussen. Ik controleer dit bestand standaard bij onderhoud, want plugins schrijven er soms ongevraagd in.

Let op de volgorde van je regels

De server leest van boven naar beneden en stopt bij de eerste regel die past. Zet specifieke regels dus boven algemene.

Let ook op lussen. Verwijst A naar B en B weer naar A? Dan draait je bezoeker in een cirkel.

Wanneer je het beter niet gebruikt

Voor honderden doorverwijzingen is dit bestand niet de handigste plek. Elke regel wordt bij elk verzoek gelezen, dus het kost rekentijd.

Heb je een lange lijst na een verhuizing? Dan is een plugin of een oplossing op serverniveau overzichtelijker en sneller.

Meer vragen over .htaccess

Dit zijn de vragen die ik hierover het vaakst krijg. Ik werk ze los uit.

  • Wat is .htaccess?
  • Waar staat het .htaccess-bestand?
  • Hoe stel je een doorverwijzing in via .htaccess?
  • Waarom is mijn website stuk na het aanpassen van .htaccess?
  • Kun je .htaccess gebruiken om je site te beveiligen?
  • Heb je .htaccess nodig bij WordPress?
In de hoofdmap van je website, naast je andere bestanden. Bij WordPress staat het op hetzelfde niveau als de mappen met je thema’s en je uploads. Omdat de naam met een punt begint, is het verborgen voor het besturingssysteem. In je bestandsprogramma of in het beheerpaneel van je hosting moet je verborgen bestanden aanzetten. Er kunnen er ook meerdere zijn. Elke map kan een eigen bestand hebben dat alleen voor die map geldt. Dat is handig als je bijvoorbeeld een enkele map wilt afschermen met een wachtwoord, zonder de rest van je site te raken. Om erbij te komen heb je toegang tot je server nodig. Dat regel je met een programma of via je klantenpaneel. Meer daarover lees je bij FTP. Vraag je hostingpartij of je erbij kunt via het klantenpaneel. Dan hoef je geen apart programma te installeren voor een kleine ingreep. Dat scheelt je een installatie en een handleiding.
Het is een configuratiebestand dat je server leest voordat hij een pagina toont. Daarin staan regels die gelden voor de map waarin het staat en alles daaronder. De naam begint met een punt, waardoor het standaard verborgen is. Je moet in je programma dus verborgen bestanden aanzetten om het te kunnen zien. Het werkt alleen op servers met Apache, wat bij de meeste hostingpakketten het geval is. Draait je site op een andere serversoort, dan heet het anders en werkt het anders. Je gebruikt het voor drie dingen: doorverwijzingen, beveiliging en foutafhandeling. Dat klinkt beperkt, maar het raakt je hele website. Een typefout erin geeft geen nette melding. Je hele site geeft dan een serverfout, niet alleen de pagina waar de regel over ging. Meer over die kant lees je bij backend. Je hoeft hier zelf niet in te werken. Wat helpt is weten dat het bestaat, zodat je bij een storing gericht kunt vragen of iemand er iets in heeft gewijzigd.
Dit is veruit het meest voorkomende gebruik. Je stuurt een oud adres naar een nieuw adres met een enkele regel. Je gebruikt het bij een nieuwe website waarin adressen veranderen, bij het hernoemen van een pagina en bij het afdwingen van een versie met of zonder www. Gebruik daarbij altijd het type dat aangeeft dat de verhuizing definitief is. Doe je dat niet, dan verhuist de opgebouwde waarde niet mee naar de nieuwe pagina. De volgorde van je regels telt. De server leest van boven naar beneden en stopt bij de eerste die past. Zet specifieke regels dus boven algemene. Let op lussen. Verwijst A naar B en B weer naar A, dan draait je bezoeker in een cirkel en krijgt hij een foutmelding. Meer daarover lees je bij redirect. Houd een lijst bij van de doorverwijzingen die je hebt ingesteld. Over een jaar weet niemand meer waarom een bepaalde regel er staat.
Omdat er geen foutmelding komt die je helpt. Zet je een letter verkeerd, dan geeft je hele site een serverfout in plaats van alleen de betreffende pagina. Dat maakt dit bestand berucht. Het gaat zelden een beetje mis, het gaat helemaal mis. Daarom houd ik een vaste volgorde aan. Eerst een kopie maken van het bestaande bestand. Dan de wijziging aanbrengen op een testomgeving. Daarna testen: je homepage, een dienstenpagina en een formulier. Pas als dat klopt gaat het naar de live site, en daar controleer je het meteen. Gaat het toch mis, dan zet je de kopie terug en werkt alles weer. Die eerste stap is dus niet optioneel. Zonder back-up ben je aan het gokken op het slechtst denkbare moment. Maak altijd eerst een kopie voordat je iets wijzigt. Dat is de enige stap in dit hele onderwerp die je nooit mag overslaan. Bewaar die kopie ook een paar weken, voor het geval er later iets opvalt.
Ja, maar meestal zonder dat je het merkt. WordPress schrijft er zelf regels in voor je mooie webadressen. Zonder die regels werkt alleen je homepage. Elke andere pagina geeft dan een foutmelding, omdat de server niet weet waar hij moet zijn. Dat is een klassiek probleem na een verhuizing. Het bestand wordt niet meegekopieerd, want het is verborgen, en dan lijkt de hele site stuk. Voeg je zelf regels toe, doe dat dan onder de regels die WordPress beheert. Nooit ertussen, want die worden bij een update overschreven. Plugins schrijven er soms ongevraagd in, bijvoorbeeld voor caching of beveiliging. Ik controleer dit bestand daarom standaard bij onderhoud. Een regel die iemand ooit toevoegde en vergat, kan jaren later voor problemen zorgen. Controleer dit bestand na elke verhuizing. Het is verborgen en wordt daardoor regelmatig vergeten bij het overzetten van je site. Een verborgen bestand wordt nu eenmaal makkelijk over het hoofd gezien.
Geeft je website ineens een serverfout of werken je oude adressen niet meer? Beschrijf je situatie via het formulier hieronder. Ik kijk mee naar je serverregels en zeg je waar het misgaat. Vaak is het een enkele regel die te veel of te weinig staat. Vermeld je plaats, dan weet ik meteen waar je zit.

Waar kan ik je mee helpen?