Waarom wp-config.php verplaatsen?
Het wp-config.php bestand bevat de meest gevoelige informatie van je WordPress installatie: database credentials, authentication keys en security salts. Als een aanvaller dit bestand kan uitlezen, heeft hij volledige toegang tot je website.
Standaard staat wp-config.php in de webroot - de map die toegankelijk is via je browser (meestal httpdocs, public_html, of www). Dit betekent dat bij een misconfiguratie of kwetsbaarheid het bestand potentieel kan worden uitgelezen.
Voordelen van verplaatsen:
- Onbereikbaar via browser: Het bestand kan niet worden opgevraagd via HTTP/HTTPS
- Bescherming bij PHP-fouten: Als PHP faalt, wordt de broncode niet getoond
- Extra beveiligingslaag: Zelfs bij .htaccess misconfiguratie blijft het veilig
- Best practice: Aanbevolen door WordPress security experts
Hoe werkt dit technisch?
WordPress heeft een ingebouwde feature die automatisch zoekt naar wp-config.php in de map één niveau hoger dan de installatie. Dit is bewust zo ontworpen door het WordPress team voor precies dit beveiligingsdoel.
Wanneer WordPress opstart, voert het de volgende check uit:
// WordPress zoekt eerst in de huidige map
if ( file_exists( ABSPATH . 'wp-config.php' ) ) {
require_once( ABSPATH . 'wp-config.php' );
}
// Als niet gevonden, zoek één map hoger
elseif ( file_exists( dirname( ABSPATH ) . '/wp-config.php' ) ) {
require_once( dirname( ABSPATH ) . '/wp-config.php' );
}
Dit betekent dat je geen enkele code hoeft aan te passen - WordPress vindt het bestand automatisch.
De mapstructuur begrijpen
Laten we eerst kijken naar de typische mapstructuur van een webhosting account:
/home/gebruiker/ ← Je account root (NIET via browser bereikbaar)
├── wp-config.php ← HIER plaatsen! Veilig!
├── httpdocs/ ← Webroot (WEL via browser bereikbaar)
│ ├── wp-admin/
│ ├── wp-content/
│ ├── wp-includes/
│ ├── index.php
│ ├── wp-load.php
│ └── (andere WordPress bestanden)
├── logs/
└── tmp/
Verschillende webroot namen:
Afhankelijk van je hosting provider kan de webroot map anders heten:
httpdocs- Pleskpublic_html- cPanel, DirectAdminwww- Sommige hosting providersweb- Sommige VPS setupshtml- Nginx standaard
Stap-voor-stap handleiding
Volg deze stappen om wp-config.php veilig te verplaatsen:
-
1
Maak een backup
Download een kopie van je huidige wp-config.php bestand via FTP of je hosting file manager.
-
2
Verbind via FTP/SFTP
Gebruik een FTP-client zoals FileZilla. Je hebt host, gebruikersnaam, wachtwoord en poort (21/22) nodig.
-
3
Navigeer naar de map boven je webroot
Ga naar de map boven httpdocs of public_html (bijvoorbeeld
/home/gebruiker/). -
4
Verplaats wp-config.php
Sleep het bestand van httpdocs/ naar de bovenliggende map. In FileZilla: rechts-klik → "Move to".
-
5
Test je website
Open je website en controleer: laadt de homepage? Kun je inloggen? Werken plugins?
-
6
Verifieer de beveiliging
Ga naar
https://jouwsite.nl/wp-config.php- je zou een 404 error moeten krijgen.
Specifiek voor Plesk & cPanel
Plesk
In Plesk is de standaard mapstructuur:
/var/www/vhosts/jouwdomein.nl/
├── wp-config.php ← Verplaats hierheen
├── httpdocs/ ← Je WordPress installatie
│ ├── wp-admin/
│ ├── wp-content/
│ └── ...
├── logs/
├── private/
└── statistics/
Gebruik de Plesk File Manager of FTP om wp-config.php van httpdocs/ naar de domein root te verplaatsen.
cPanel
In cPanel is de standaard mapstructuur:
/home/gebruiker/
├── wp-config.php ← Verplaats hierheen
├── public_html/ ← Je WordPress installatie
│ ├── wp-admin/
│ ├── wp-content/
│ └── ...
├── logs/
├── mail/
└── tmp/
Gebruik de cPanel File Manager: ga naar de home directory en verplaats wp-config.php uit public_html.
Veelgestelde Vragen
Website toont witte pagina of error na verplaatsen
Controleer deze punten:
- Staat wp-config.php exact één map hoger?
- Zijn de file permissions correct (644)?
- Is er geen tweede wp-config.php in httpdocs?
Herstel je backup als niets werkt.
"Error establishing database connection"
WordPress kan wp-config.php niet vinden of lezen:
- Controleer of het bestand op de juiste plek staat
- Controleer de file permissions
- Controleer of de database gegevens correct zijn
WordPress staat in een submap (/blog/). Wat nu?
Verplaats wp-config.php naar de map erboven (bijvoorbeeld van /httpdocs/blog/ naar /httpdocs/). Let op: in dit geval is het bestand nog wel via de browser bereikbaar en moet je ook .htaccess bescherming toevoegen.
Werkt dit met alle hosting providers?
Ja, dit werkt met vrijwel alle hosting providers (Plesk, cPanel, DirectAdmin, etc.). Je hebt alleen FTP/SFTP toegang nodig tot de map boven je webroot.
Kan ik wp-config.php twee mappen hoger plaatsen?
Nee, WordPress zoekt alleen één niveau hoger. Voor meer niveaus is aanvullende configuratie nodig die we niet aanraden.
Blijft dit werken na WordPress updates?
Ja! Dit is een ingebouwde WordPress feature die al jaren bestaat. Updates veranderen dit gedrag niet.
Extra beveiligingstips
Naast het verplaatsen van wp-config.php zijn er nog meer maatregelen die je kunt nemen:
1. Correct file permissions instellen
# Striktere permissions voor wp-config.php
chmod 600 wp-config.php
# Of als dat problemen geeft:
chmod 640 wp-config.php
2. Extra .htaccess bescherming
Voor extra zekerheid (vooral als WordPress in een submap staat):
# Blokkeer directe toegang tot wp-config.php
<Files wp-config.php>
Require all denied
</Files>
3. Database credentials roteren
Als je vermoedt dat wp-config.php ooit is uitgelezen, verander dan onmiddellijk:
- Database wachtwoord
- Alle Authentication Keys en Salts
- Eventuele API keys in wp-config.php
Conclusie
Het verplaatsen van wp-config.php buiten de webroot is een van de meest effectieve beveiligingsmaatregelen die je kunt nemen. Het is eenvoudig uit te voeren, vereist geen code-aanpassingen, en maakt je gevoeligste configuratiebestand onbereikbaar voor aanvallers.
Gecombineerd met andere security maatregelen zoals .htaccess beveiliging en wp-config.php hardening, heb je een solide basis voor een veilige WordPress website.
Checklist:
Hulp nodig met WordPress beveiliging?
Onze experts helpen je graag met het implementeren van deze en andere beveiligingsmaatregelen.