De kans is groot dat je op jouw WordPress website met het .htaccess bestand te maken krijgt.
.htaccess staat voor Hypertext Access. Dit is een bestand dat gebruikt wordt op Apache webservers (waar de meeste sites op draaien) om diverse zaken te configureren, waaronder dat je mooie permalinks krijgt van bijvoorbeeld van je bericht slug.
In dit artikel zal ik je meer vertellen over de combinatie WordPress .htaccess en wat het bestand allemaal voor je kan doen en hoe je het kunt bewerken.
Inhoudsopgave: WordPress htaccess
Wat is htaccess en wat heeft het met WordPress te maken?
Het .htaccess bestand is een configuratiebestand dat gebruikt wordt door servers die de software Apache gebruiken, wat op veel servers het geval is. Met het .htaccess bestand kun je voor jouw WordPress website diverse zaken regelen. Ik zal hieronder in het kort opsommen wat mogelijk is.
- URL-rewriting: Het .htaccess bestand wordt vaak gebruikt om de URL’s van je WordPress website ‘mooi’ te maken. In plaats van /?p=123/ kan er /naam-van-artikel/ gebruikt worden in de slug van de URL. Dit is een stuk beter voor de SEO (zoekmachine optimalisatie) van je website.
- Beveiliging: Met .htaccess heb je ook de mogelijkheid om veiligheidsregels in te stellen. Denk bijvoorbeeld aan het blokkeren van bepaalde IP-adressen, beveiligen van mappen of bestanden, dat niet alle bestandstypen direct geladen worden en nog een aantal dingen meer. Plugins die betrekking hebben tot de veiligheid van je website schrijven soms ook regels in het .htaccess bestand.
- Redirects: In het .htaccess kun je ook 301 redirects instellen. Je hebt dan geen plugin nodig, omdat je dit al via dit bestand regelt. Een redirect kun je onder andere instellen wanneer je een URL van een pagina aanpast en zo de oude versie naar de nieuwe versie doorstuurt.
- Caching: Met caching kun je jouw WordPress website sneller maken. In het .htaccess bestand kun je instructies geven over hoe browsers van bezoekers moeten omgaan met caching van website-inhoud. Wanneer je een cache plugin gebruikt zal de plugin regels schrijven in het .htaccess bestand.
Waar kan ik het .htaccess bestand vinden en bewerken?
Laten we beginnen met dat je erg voorzichtig moet zijn tijdens het aanpassen van het .htaccess-bestand als je dit van plan bent. Het is een bestand die invloed heeft op de serverconfiguratie en als je foutieve wijzigingen aanbrengt kan het zijn dat je website het niet meer doet.
Het is dan ook altijd verstandig om van tevoren een back-up te maken, zodat je altijd terug kan gaan naar een werkende versie van het bestand.
Waar staat het .htaccess bestand?
Dit gezegd hebbende, waar staat het .htaccess bestand eigenlijk? Je kunt dit bestand altijd vinden om de hoofdmap van je WordPress installatie, dit wordt ook wel de root folder genoemd.
Je kunt deze map herkennen aan de bestanden en mappen die erin staan. Zo zal je in de hoofdmap ook de mappen wp-admin, wp-content en wp-includes zien staan.
Om het .htaccess bestand te benaderen heb je een aantal mogelijkheden, namelijk:
- FTP/SFTP: Via een FTP-programma als Filezilla kun je met jouw FTP-inloggegevens inloggen op de server van je website en bij de bestanden komen.
- Bestandsbeheer (hosting provider): Bij vrijwel alle hosting providers krijg je de mogelijkheid om via een controlepaneel als cPanel, Plesk of DirectAdmin ook direct bestanden te beheren. Ben je op zoek naar een goede hosting provider? Dit zijn in mijn ogen de beste WordPress hosting providers.
- SSH: Ben je wat verder gevorderd, dan kun je ook via SSH het .htaccess bestand van je WordPress installatie benaderen. Via SSH zal je via commando’s moeten werken in een terminal, dus dit is niet voor iedereen weggelegd.
Hoe kan ik het .htaccess bestand bewerken?
Nu je weet waar het .htaccess bestand staat, wil je het misschien ook wel bewerken. De manier waarop je dit kunt doen hangt natuurlijk af van de methode waarmee je het bestand benaderd.
Doe je dit via FTP, dan kun je het bestand naar je computer downloaden, openen met een teksteditor als Notepad++ (Windows) of Atom (iOS). Vervolgens kun je de wijzigingen aanbrengen die je wilt doorvoeren en het bestand opnieuw uploaden naar de server.
Ga je via bestandsbeheer, dan kun je vaak op de rechtermuisknop klikken bij het .htaccess-bestand en op ‘Bewerken’ klikken. Je krijgt nu een editor te zien waar je het bestand kunt aanpassen en vervolgens kunt opslaan als je klaar bent.
Via SSH zal je het bestand via de terminal kunnen bewerken.
Bonus optie: Via Yoast SEO kun je ook altijd het .htaccess bestand benaderen. Dit kun je doen via Yoast SEO → Gereedschap → Bestandseditor.
Persoonlijk zou ik het echter hier niet aanpassen als je niet weet wat je doet, want als je hier iets verkeerd invult zal je website het niet meer doen en kun je het dus ook niet vanaf deze plek weer oplossen.
Standaard .htaccess bestand van WordPress
Heb je ooit problemen met het .htaccess bestand van jouw WordPress website, dan kun je altijd terug naar de beginsituatie van WordPress. Het standaard .htaccess bestand van WordPress ziet er als volgt uit:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Mocht je overigens nog meer over dit bestand willen leren, dan kun je ook nog de WordPress documentatie hierover bekijken.
Regels die je aan htaccess zou kunnen toevoegen
Nu je weet wat .htaccess in WordPress is ben je wellicht ook benieuwd naar een aantal regels die je kunt gebruiken op jouw website. Hieronder heb ik meerdere htaccess regels voor je op een rijtje gezet.
Gebruik de code die je wil gebruiken en pas uiteraard wel alles aan naar jouw situatie. Het is dus niet alleen kopiëren en plakken, je moet ook nog wijzigingen doorvoeren voor hoe je het wilt hebben op jouw website.
Plaats de code altijd onder of boven de regels ‘BEGIN WordPress’ en ‘END WordPress’, zodat je deze code niet in de knoop brengt.
Beperk toegang tot wp-admin
Wil je niet dat iedereen zomaar bij het inlogformulier van jouw WordPress website kan komen? Je kunt dit beveiligen door enkel jouw IP-adres toe te staan tot deze pagina. Je kunt dit met de volgende regels bereiken:
<Files wp-login.php>
order deny,allow
Deny from all
# Sta je eigen IP-adres toe
Allow from 123.123.123.123
</Files>
Uiteraard moet je 123.123.123.123 nog wijzigen naar je eigen IP-adres en het is ook mogelijk om meerdere IP-adressen toe te voegen door meer allow from regels toe te voegen met de IP-adressen die je wilt toestaan.
IP-adressen blokkeren
Wil je ervoor zorgen dat bepaalde IP-adressen geen toegang hebben tot je website? Je kunt de IP-adressen toevoegen aan jouw WordPress htaccess document door de volgende regels toe te voegen. Wijzig uiteraard het IP-adres naar het IP-adres dat je wilt blokkeren.
Order Allow,Deny
Allow from all
Deny from 123.123.123.123
Deny from 124.124.124.124
Blokkeer toegang tot XML-RPC
XML-RPC kan door WordPress gebruikt worden voor remote verbindingen. Het is hierdoor ook direct een doelwit voor brute force aanvallen. Als je het niet gebruikt kun je het uitschakelen via htaccess, zodat je via deze manier niet aangevallen kan worden. De code die je hiervoor kunt gebruiken is:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Redirects instellen
Wijzig je de URL van een pagina en wil je mensen doorsturen van de oude URL naar de nieuwe URL, dan heb je een redirect nodig. Heb je geen zin om een redirect plugin te gebruiken op je website? Via htaccess kun je ook alle redirect regelen. Wanneer je bijvoorbeeld een 301 redirect wilt toevoegen kun je de volgende regel toevoegen:
Redirect 301 /oude-url/ http://www.jouwwebsite.nl/nieuwe-url/
Let er dus op dat je bij de oude URL alleen de slug hoeft in te vullen en niet heel je domeinnaam. Bij de nieuwe URL is dit wel nodig, want je zou bijvoorbeeld de URL ook naar een andere pagina kunnen doorverwijzen.
Aangepaste foutpagina’s
Wil je de standaard foutpagina’s aanpassen omdat je hier speciale pagina’s voor gemaakt hebt? Je kunt bijvoorbeeld voor een 500 interne serverfout (internal server error) een zelf gemaakte foutpagina tonen.
ErrorDocument 500 /interne-serverfout.html
Uiteraard moet je hier wel ook een pagina voor aanmaken. Het liefst in HTML, want als je website het niet doet kan je niet een pagina van je website tonen. Je kunt dit ook doen voor andere fouten zoals bijvoorbeeld een 404 foutmelding.
Browser caching inschakelen
Wie weet kom je ooit tijdens het optimaliseren van de snelheid van je website tegen dat je browser caching moet inschakelen. Er zijn caching plugins voor WordPress, maar via het htaccess bestand kun je browser caching ook al inschakelen. Je kunt hiervoor de volgende regels code gebruiken:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
HTTPS URL’s afdwingen
Als het goed is draait jouw website op een HTTPS URL, dit is nu al tijden de standaard omdat dan er dan een versleutelde verbinding is tussen de browser van de bezoeker en de server van de website. Mocht je HTTPS willen afdwingen, zodat je website helemaal niet via HTTP te bereiken is en automatisch naar HTTPS gaat, dan kun je de volgende code gebruiken in het htaccess bestand van je WordPress installatie.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
HTTP Strict Transport Security (HSTS) inschakelen
Als toevoeging op bovenstaande code kun je ook HTTP Strict Transport Security, HSTS in het kort, inschakelen. Door dit in te schakelen geef je aan browsers van je bezoekers aan dat onthouden moet worden om altijd via een HTTPS verbinding te werken.
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
Directory browsing uitschakelen
Op server niveau hoort eigenlijk al uitgeschakeld te zijn dat mensen door je directory (mappen) op de server kunnen snuffen. Is dit niet het geval, dan kun je dit gelukkig zelf regelen met de volgende regel:
Options -Indexes
Op deze manier verbeter je de veiligheid van je website aanzienlijk op een eenvoudige manier.
Hotlink bescherming (afbeeldingen beschermen)
Wist je dat er een techniek is genaamd ‘hotlinking’? Met hotlink bescherming kun je ervoor zorgen dat andere websites je afbeeldingen niet via jouw URL kunnen gebruiken op hun eigen website. Dit kan bandbreedte besparen voor jouw website en maakt het mensen moeilijker om je afbeelding te stelen (downloaden en uploaden naar hun eigen website kan nog wel).
Om hotlink bescherming in te schakelen kun je de volgende regels toevoegen:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?jouwdomein.nl [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
Uiteraard moet je hier nog wel de domeinnaam aanpassen naar jouw eigen domeinnaam.
Veelgestelde vragen over WordPress htaccess
Het .htaccess bestand is een configuratiebestand. Wanneer je een verkeerde regel code hebt ingevuld kan dit een 500 interne serverfout veroorzaken. Haal de laatst toegevoegde codes weg om je website weer werkend te krijgen. Voordat je iets toevoegt is het ook altijd verstandig om een back-up van het bestand te maken.
Het kan zijn dat je via een plugin als Yoast SEO wijzigingen hebt aangebracht aan het .htaccess bestand die verkeerd uit hebben gepakt. Je toegang tot de website is door de verkeerde wijzigingen verdwenen. Je kunt nu nog bij dit bestand komen via FTP of bestandsbeheer via je hosting provider.
Ja, het is inderdaad mogelijk om via het .htaccess bestand jouw website beter te beveiligen door beveiligingsregels toe te voegen. Zo kun je IP-adressen uitsluiten, toegang tot het inlogformulier van WordPress beperken, directory browsing voorkomen en nog een aantal dingen meer.
Het .htaccess bestand is niet alleen een bestand die op WordPress websites gebruikt wordt. Het kan gebruikt worden voor alle websites die op een Apache server draaien. De beste bron om meer over .htaccess te leren is dan ook via de officiële apache website.