Ultima novità in casa WordPress, almeno nel ramo 2.8: se il vostro blog è installato nella root del server e provate a proteggere la cartella wp-admin con un file .htaccess, l’amministrazione non sarà più raggiungibile. Riceverete un errore 404 (pagina non trovata).
Dopo aver penato un po’ di tempo sono riuscito a venirne a capo.
Di base WordPress utilizza regole di rewrite interne (ossia quelle schiantate nel database). Queste stesse regole non tengono in considerazione eventuali .htaccess inseriti in cartelle diverse dalla root del sito.
Per risolvere è necessario che il file .htaccess primario (quello utilizzato da WordPress appunto) abbia anche le seguenti direttive:
ErrorDocument 400 /cartella/pagina-errore.htm
ErrorDocument 401 /cartella/pagina-errore.htm
ErrorDocument 404 /cartella/pagina-errore.htm
Il file pagina-errore.html, ovviamente, deve esistere sul server.
Se proprio vogliamo essere precisi, anche se è non fondamentale, possiamo aggiungere altri codici di errore personalizzati:
ErrorDocument 402 /cartella/pagina-errore.htm
ErrorDocument 403 /cartella/pagina-errore.htm
ErrorDocument 500 /cartella/pagina-errore.htm
Quindi avremo un file .htaccess simile a questo:
ErrorDocument 400 /cartella/pagina-errore.htm
ErrorDocument 401 /cartella/pagina-errore.htm
ErrorDocument 402 /cartella/pagina-errore.htm
ErrorDocument 403 /cartella/pagina-errore.htm
ErrorDocument 404 /cartella/pagina-errore.htm
ErrorDocument 500 /cartella/pagina-errore.htm
# BEGIN WORDPRESS
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Fatto questo possiamo creare la classica accoppiata .htaccess/.htpasswd da inserire nella cartella wp-admin per aggiungere un ulteriore livello di sicurezza.
Da notare un particolare: in alcune situazioni, quando ad esempio un utente non ha inserito la propria email nel form dei commenti, la pagina pubblica di WordPress richiama un file .css presente nell’amministrazione. Per evitare che agli utenti venga mostrata la maschera di accesso riservato possiamo creare l’.htaccess in wp-admin in questa maniera:
AuthType Basic
AuthName "Accesso riservato"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
Order allow,deny
Satisfy any
<limit GET POST>
require valid-user
</limit>
<FilesMatch "\.(css|js|gif|png)$">
Allow from All
</FilesMatch>
Con queste righe di codice, in pratica, blocchiamo tutti i file tranne quelli con estensione .css, .js, .gif e .png (per i quali non verrà richiesta autenticazione).
1 Comment To "Cartella wp-admin, file .htaccess ed errore 404"
#1 Comment By camaleo On 31 Maggio 2010 @ 17:58
Grande Lorenzone!