WordPress-structuur verbergen
Je kunt de standaard mapstructuur van WordPress verbergen voor extra bescherming tegen geautomatiseerde scanners en eenvoudige aanvallen. Dit wijzigt de directories en structurele paden die WordPress gebruikt.
De wp-content-map herschrijven
Je kunt de wp-content-map naar elk gewenst pad herschrijven. Voeg het volgende toe aan je wp-config.php en vervang /assets door je gewenste mapnaam:
define('WP_CONTENT_DIR', dirname(__FILE__) . '/assets');
define('WP_CONTENT_URL', '/assets');De plugins-map herschrijven
Ook de /plugins-map kun je herschrijven. Zorg dat het pad overeenkomt met de map die je hierboven hebt gedefinieerd (assets/...):
define('WP_PLUGIN_DIR', dirname(__FILE__) . '/assets/lib');
define('WP_PLUGIN_URL', '/assets/lib');De uploads-map verplaatsen
Om de uploads-map naar een ander pad te verplaatsen:
define('UPLOADS', 'assets/img');Voorbeeld-mapping:
| Standaard | Nieuw pad |
|---|---|
wp-content | /assets |
plugins | /assets/lib |
themes | /assets/core |
uploads | /assets/img |
(Optioneel) Maand/jaar-uploadmappen uitschakelen
Om te voorkomen dat WordPress mappen aanmaakt zoals /2026/03/ binnen uploads:
- Log in op het WordPress-adminpaneel.
- Ga naar Instellingen → Media.
- Schakel Organiseer mijn uploads in maand- en jaargebaseerde mappen uit.
- Sla de wijzigingen op.
De thema-map hernoemen
WordPress biedt geen constante om de themamap te wijzigen. Dit kan wel via een MU-plugin (Must-Use).
- Maak in je
wp-content-map (of het hernoemde equivalent) een nieuwe map genaamdmu-pluginsaan. - Maak in die map een nieuw bestand aan met de naam
theme-core.php. - Plak de onderstaande code en vervang
coredoor de naam van je themamap:
<?php
add_filter('theme_root', function () {
return WP_CONTENT_DIR . '/core';
});
add_filter('theme_root_uri', function () {
return WP_CONTENT_URL . '/core';
});NGINX-beveiligings- & prestatie-regels
Voor optimale beveiliging blokkeer je alle externe toegang tot de mu-plugins-map — alleen de server zelf zou de bestanden mogen lezen. Verhoog daarnaast de prestaties door cache-headers in te stellen voor alle statische assets (afbeeldingen, CSS, JavaScript) die vanuit /assets/ worden geserveerd.
location ~* /mu-plugins/.*\.php$ {
deny all;
}
location /assets/ {
expires 30d;
access_log off;
log_not_found off;
}