Può essere necessario proteggere dei file sensibili dall’ accesso diretto tramite URL (per esempio se si conosce l’url diretto di un allegato oppure se questo viene mappato in Google).
WordPress ci da la possibilità di dare accessi riservati alle pagine e/o mostrare gli allegati solo a determinati utenti, tramite plugin dedicati.
Non ci protegge però dall’accesso diretto tramite URL.
Per fare questo, possiamo creare una cartella dove spostare gli allegati “sensibili” tramite un plugin come Media File Manager.
Poi bisogna proteggere l’accesso a questa cartella, modificando il file .htaccess presente nella root del sito aggiungendo le scritte in neretto.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^.*uploads/CartellaRiservata/.*
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule . /wp-login.php?redirect_to=%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Può capitare che la modifica del file .htaccess crei un errore 500 Internal Server Error Help
In questo caso aggiungete queste 2 righe prima di <IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
Fonte di riferimento: http://www.scuolacooperativa.net/wp3-social/csm-dedicati/wordpress/allegati-solo-per-gli-utenti-registrati/