WordPress htaccess – tips en trucs

De meeste tutorials leggen op een snelle en simpele manier uit hoe je binnen enkele minuten aan de slag kunt met WordPress. Echter wordt er in dergelijke tutorials meestal geen aandacht besteedt aan het beveiligen van je blog of website. In dit artikel gaan we het hebben over het .htaccess bestand, en bekijken we een aantal .htaccess snippets die je helpen om je site te beveiligen.

Wat is het WordPress htaccess bestand?

Een .htaccess bestand is een optioneel configuratiebestand. Je kunt er verschillende instellingen in opslaan, waaronder het blokkeren van IP adressen, zorgen dat een bestand of map niet publiekelijk toegankelijk is, het met een wachtwoord beschermen van een directory, enzovoorts.

Heel simpel gezegd is het .htaccess-bestand van WordPress een plat tekstbestand waarmee je de instellingen kunt overschrijven. Dit config bestand is een samenstelling van zogenaamde bouwstenen, die ervoor zorgt dat je website de correcte functionaliteit heeft. Je kunt deze instellingen voor WordPress dus met het .htaccess-bestand wijzigen. Het bestand bevat informatie, ofwel instructies, in de vorm van tekst die de server kan lezen. Het kan mogelijk een beetje lastig zijn om te lezen maar we gaan je hierbij helpen.

Wordpress htaccess

Waar vind je het .htaccess-bestand?

De htaccess file van jouw website is terug te vinden in de ‘root’ van je website. Dit is de hoofdmap waarin alle bestanden van je website worden opgeslagen. Om deze root te vinden, heb je een FTP-programma (google op FTP client) nodig, waarmee je verbinding maakt met je website. De meeste webhosting bedrijven levert ook een online file browser maar we gaan er nu vanuit dat je met FTP kan werken.

Zodra je de FTP verbinding hebt gemaakt, kom je terecht in een standaard map waar je de root map (in het engels ook wel root directory genoemd) van jouw website terugvindt. In deze map van WordPress is de .htaccess location te vinden. Let hierbij wel op dat in de meeste FTP-programma’s puntbestanden (bestanden die beginnen met een ‘.’) standaard verborgen worden. Om het bestand te kunnen vinden, dien je daarom eerst de optie in te schakelen die ervoor zorgt dat het programma dit soort bestanden toont. Vaak heet deze optie show hidden file

Hoe kan ik het .htaccess bestand aanpassen?

Door kleine ‘snippets’ code in je .htaccess bestand te kopiëren, kun je je site beveiligen. Hieronder hebben we een paar handige snippets voor je op een rijtje gezet, en erbij gezet wat ze precies doen.

Voordat je aan de slag gaat met het aanpassen van je .htaccess bestand om de veiligheid van je site te verbeteren, is het raadzaam om even een backup te maken van het huidige .htaccess bestand. Mocht je dan per ongeluk iets invoeren waardoor je site niet meer goed werkt, dan kun je altijd op het backup bestand terugvallen. Heb je toch een foutje gemaakt, google dan naar ‘wordpress default htaccess’ en zoek naar het standaard bestand voor jouw versie.

Doorverwijzen – 301 redirects

Om door te verwijzen naar een andere pagina binnen je site, voeg je aan het .htaccess-bestand de redirect regel toe. Dit doe je door “redirect 301/verkeerd.html /juist.html” aan je tekstbestand toe te voegen. Mocht je een bezoeker nu permanent naar een submap door willen verwijzen, dan voeg je de volgende regel toe aan de configuration file: “RedirectMatch permanent ^/*$ /submap/”

 

Bots blokkeren

Met deze snippet kun je de toegang tot je site vanaf meerdere IP adressen blokkeren.
# Block one or more IP address. Replace IP_ADDRESS_* with the IP you want to block
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all

Deactiveren van directory browsing

De Apache webserver staat standaard ingesteld om directory browsing toe te staan. Dat betekent dat alle bestanden en mappen in je home directory toegankelijk zijn voor bezoekers. Men kan gewoon rondsnuffelen tussen je media uploads, je thema’s en je plugins bestanden.
Om deze instelling uit te schakelen kun je onderstaande snippet gebruiken:

# Disable directory browsing
Options All -Indexes

Alleen geselecteerde bestanden toestaan van wp-content

In je wp-content map staat het grootste deel van je thema’s, plugins en media uploads. Natuurlijk wil je niet dat mensen hier gaan rondsnuffelen. Naast het uitzetten van directory browsing kun je ook toegang tot bepaalde bestandstypes uizetten. Je kunt selecteren welke soort bestanden (.jpg, .pdf, .docx, enzovoorts) je wilt blokkeren. Dat kun je doen met deze snippet:

# Disable access to all file types except the following
Order deny,allow
Deny from all
Allow from all

Alle toegang tot wp-includes blokkeren

In de wp-includes map staan bestanden die noodzakelijk zijn om de ‘kern’ van WordPress te laten draaien – dus zonder thema’s en plugins en dergelijke. Om de toegang tot deze map te blokkeren kun je de volgende snippet in je .htaccess bestand plakken:

# Block wp-includes folder and files

RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]

Geselecteerde IP adressen toegang verlenen tot wp-admin

In de wp-admin map staan alle bestanden die nodig zijn om het dashboard te laten functioneren. Je bezoekers hebben doorgaans niets te zoeken op je dashboard, dus het is slim om alleen een paar selecteerde IP adressen toegang te geven tot de wp-admin map (zoals editors en andere admins, als je die hebt). Met onderstaande snippet hebben alleen zij toegang tot de map, en de rest van de wereld niet. Let op: zorg dat je een nieuw .htaccess bestand aanmaakt en deze in de wp-admin map opslaat. Als je hem namelijk in de base installation directory opslaat, zal niemand je site kunnen bezoeken!

# Limit logins and admin by IP
order deny,allow deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2

Beschermen van wp-config.php en .htaccess

In het wp-config bestand staat gevoelige informatie, zoals de database naam en toegangsgegevens. Om te voorkomen dat mensen hierin gaan rondsnuffelen kun je de volgende snippet gebruiken:

# Deny access to wp-config.php file

order allow,deny
deny from all

Ontzeggen van hotlinking van afbeeldingen

Als je niet wil dat mensen afbeeldingen van jouw website gebruiken, kun je de volgende snippet invoeren:

# Prevent image hotlinking script. Replace last URL with any image link you want.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

Browser caching aanzetten

Met deze .htaccess hack kun je de aanbevolen browser caching opties voor je site inschakelen.

# Setup browser caching

ExpiresActive On
ExpiresByType image/jpg “access 1 year”
ExpiresByType image/jpeg “access 1 year”
ExpiresByType image/gif “access 1 year”
ExpiresByType image/png “access 1 year”
ExpiresByType text/css “access 1 month”
ExpiresByType application/pdf “access 1 month”
ExpiresByType text/x-javascript “access 1 month”
ExpiresByType application/x-shockwave-flash “access 1 month” ExpiresByType image/x-icon “access 1 year”
ExpiresDefault “access 2 days”

Redirect naar een onderhoudspagina

Als je je site naar een andere host aan het verhuizen bent, of bezig bent met onderhoudswerkzaamheden, is het raadzaam om een statisch HTML bestand aan te maken, waarmee je je bezoekers informeert over de onderhoudswerkzaamheden. Zij weten dat dat je snel weer online zult zijn. Creëer een onderhoudspagina (bijvoorbeeld onderhoud.html) en upload deze in de installation directory. Daarna kun je onderstaande snippet in je .htaccess bestand plakken. Vergeet niet om deze snippet te deleten zodra je weer online bent! Je kunt hem ook laten staan en dan uitschakelen door een ‘#’ aan het begin van elke regel te zetten.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

Custom error pagina’s

Je kunt het .htaccess bestand ook gebruiken om gebruiksvriendelijke error-pagina’s te configureren. Zodra je wat error-pagina’s hebt aangemaakt (bijvoorbeeld error.html) kun je deze uploaden en daarna de volgende snippet in je .htaccess bestand plakken:

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 / error.html
ErrorDocument 500 / error.html

 

Om SSL in te stellen maak je vaak ook gebruik van het .htaccess bestand. Lees hier alles over https voor wordpress.

Geef een reactie