15 snippet di .htaccess utili per il tuo sito WordPress
Avere un file .htaccess ben configurato è fondamentale se vuoi aumentare la sicurezza e ridurre le vulnerabilità sul tuo sito WordPress. Di solito, l'obiettivo principale della creazione di file .htaccess personalizzato è impedire che il tuo sito venga violato, ma è anche un modo eccellente per gestire i reindirizzamenti e gestire le attività relative alla cache.
.htaccess è un file di configurazione utilizzato su server Web Apache. La maggior parte dei siti WordPress eseguire su un server Apache, anche se una piccola parte è alimentato da Nginx. In questo articolo, puoi trovare a raccolta di snippet di codice .htaccess, la maggior parte delle quali è possibile utilizzare per proteggere il tuo sito Web mentre il resto implementa altre utili funzionalità.
Non dimenticare di eseguire il backup del file .htaccess prima di modificarlo in modo da poterlo sempre tornare alla versione precedente se qualcosa va storto.
E, se sei qualcuno che preferisce non toccare i file di configurazione, ti consiglio di BulletProof Security plugin che è il più affidabile (e probabilmente il più vecchio) plugin di sicurezza gratuito .htaccess sul mercato.
Crea il .htaccess WP predefinito
.htaccess funziona su a base per directory il che significa che ogni directory può avere il proprio file .htaccess. Può facilmente succedere che il tuo sito WordPress non ha ancora un file .htaccess. Se non trovi un file .htaccess nella tua directory principale crea un file di testo vuoto e chiamarlo .htaccess
.
Di seguito, puoi trovare il default .htaccess WordPress utilizza. Ogni volta che hai bisogno di questo codice puoi cercarlo rapidamente nel codice WordPress. Si noti che esiste un .htaccess diverso per Multisite WP.
# INIZIA WordPressRewriteEngine Su RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
Le linee che iniziano con #
sono commenti. Non modificare nulla tra le linee # INIZIA WordPress
e # END WordPress
. Aggiungi le tue regole .htaccess personalizzate sotto queste regole predefinite.
Tutti gli snippet di codice che puoi trovare in questo articolo vai al file .htaccess di base trovato nella directory principale.
1. Nega l'accesso a tutti i file .htaccess
Il codice qui sotto nega l'accesso a tutti i file .htaccess che hai installato nel tuo WordPress. In questo modo puoi impedire alle persone di vedere il tuo configurazioni del server web.
# Nega l'accesso a tutti i file .htaccessOrdine Consenti, Nega Rifiuta da tutti Soddisfa tutto
2. Proteggi la tua configurazione WP
Il wp-config.php
il file contiene tutte le tue configurazioni WP, incluso il login e la password del database. Puoi negarlo da tutti o dare il permesso agli amministratori di accedervi.
Se scegli il secondo commentare il # Permetti da xx.xx.xx.xxx
linea (rimuovere #
dall'inizio della linea) e inserisci l'indirizzo IP dell'amministratore al posto di xx.xx.xx.xxx
.
# Protegge wp-configConsenti ordine, Nega # Permetti da xx.xx.xx.xxx # Permetti da yy.yy.yy.yyy Rifiuta da tutti
3. Prevenire l'attacco DDoS XML-RPC
WordPress supporta XML-RPC di default, che è un interfaccia che rende la pubblicazione remota possibile. Tuttavia, sebbene sia una funzionalità eccezionale, è anche una delle maggiori vulnerabilità di sicurezza di WP, come potrebbero fare gli hacker sfruttalo per gli attacchi DDoS.
Se non vuoi usare questa funzione è meglio solo disabilitarlo. Proprio come prima, puoi aggiungere eccezioni commentando il # Permetti da xx.xx.xx.xxx
linea e aggiungendo gli IP dei tuoi amministratori.
# Protegge XML-RPC, previene l'attacco DDoSOrdine Nega, Permetti # Permetti da xx.xx.xx.xxx # Permetti da yy.yy.yy.yyy Nega da tutti
4. Proteggi la tua area di amministrazione
È anche una buona idea proteggere l'area dell'amministratore dando accesso solo agli amministratori. Qui, non dimenticare di aggiungi almeno uno “permettere” eccezione altrimenti non sarai in grado di accedere al tuo amministratore.
# Protegge l'area di amministrazione tramite IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "WordPress Admin Access Control" AuthType BasicRifiuta ordine, Consenti nega da tutti Consenti da xx.xx.xx.xxx Consenti da yy.yy.yy.yyy
5. Impedisci l'elenco delle directory
La maggior parte dei siti WordPress non disabilita l'elenco delle directory, il che significa che chiunque può Sfoglia le loro cartelle e file, inclusi upload di media e file plugin. Inutile dire che si tratta di un'enorme vulnerabilità di sicurezza.
Di seguito, puoi vedere come a l'elenco di directory tipico di WordPress è simile.
Fortunatamente, hai solo bisogno una riga di codice per bloccare questa funzione. Questo snippet di codice funzionerà restituisce un messaggio di errore 403 a chiunque desideri accedere alle tue directory.
# Impedisce l'elenco delle directory Opzioni -Index
6. Impedisci l'enumerazione del nome utente
Se i permalink di WP sono abilitati, è abbastanza facile enumerare i nomi utente usando gli archivi dell'autore. I nomi utente rivelati (incluso il nome utente dell'amministratore) possono essere utilizzati in attacchi di forza bruta.
Inserisci il codice qui sotto nel tuo file .htaccess in prevenire l'enumerazione dei nomi utente.
# Impedisce l'enumerazione del nome utente RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Blocca spammer e bot
A volte potresti volerlo limitare l'accesso da determinati indirizzi IP. Questo snippet di codice offre un modo semplice per bloccare gli spammer e i bot che già conosci.
# Blocca spammer e botOrdine Consenti, Nega Rifiuta da xx.xx.xx.xxx Rifiuta da aaa.aa.aa.aaa Permetti a tutti
8. Impedire l'hotlinking dell'immagine
Sebbene non sia una minaccia per la sicurezza, hotlinking delle immagini è ancora una cosa fastidiosa. Le persone non solo usa le tue immagini senza il tuo permesso ma lo fanno anche a tue spese. Con queste poche righe di codice, puoi proteggere il tuo sito da hotlink di immagini.
# Impedisce l'hotlinking dell'immagine RewriteEngine su RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Yourwebsite.com [NC] RewriteCond% HTTP_REFERER! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Limitare l'accesso diretto ai file PHP di plugin e tema
Può essere pericoloso se qualcuno chiama direttamente il tuo plugin e i file del tema, se accade accidentalmente o da un malintenzionato. Questo snippet di codice proviene dalla società di sicurezza del sito web Acunetix; puoi leggere ulteriori informazioni su questa vulnerabilità nel loro post sul blog.
# Limita l'accesso ai file PHP dalle directory dei plug-in e dei temi RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / to / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / directory / to / exclude / RewriteRule wp-content / plugins / (. * \. php) $ - [R = 404, L] RewriteCond% REQUEST_URI! ^ / wp-content / themes / file / to / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / themes / directory / to / exclude / RewriteRule wp-content / themes / (. * \. Php) $ - [R = 404, L]
10. Imposta reindirizzamenti permanenti
Puoi facilmente gestire i reindirizzamenti permanenti con .htaccess. Per prima cosa devi aggiungere il vecchio URL, quindi seguire il nuovo URL che punta alla pagina a cui si desidera reindirizzare l'utente.
# Reindirizzamenti permanenti Reindirizza 301 / oldurl1 / http://yoursite.com/newurl1 Reindirizza 301 / oldurl2 / http://yoursite.com/newurl2
11. Inviare i visitatori a una pagina di manutenzione
Abbiamo scritto su questa tecnica in dettaglio qui. Avete bisogno di un pagina di manutenzione separata (maintenance.html
nell'esempio) per questa regola .htaccess per funzionare. Questo codice mette il tuo sito WordPress in modalità di manutenzione.
# Reindirizza alla pagina di manutenzioneRewriteEngine su RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | gif ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Limita tutti gli accessi a WP include
Il / Wp-includes /
cartella contiene i principali file WordPress che sono necessari al funzionamento del CMS. Non ci sono contenuti, plug-in, temi o qualsiasi altra cosa che un utente possa desiderare di accedere qui. Quindi per rafforzare la sicurezza è meglio limitare tutti gli accessi ad esso.
# Blocca tutti i file e le cartelle di wp-includeRewriteEngine 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]
13. Bloccare lo scripting cross-site (XSS)
Il seguente frammento di codice proviene da WP Mix e protegge il tuo sito contro alcuni comuni attacchi XSS, ovvero iniezioni di script e tentativi di modificare variabili globali e richieste.
# Blocca alcuni attacchi XSSRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALS (= | \ [| \% [0-9A-Z] 0,2) [OR] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Abilita la memorizzazione nella cache del browser
Come accennato in precedenza, .htaccess non è utile solo per motivi di sicurezza e reindirizzamenti, ma può anche aiutarti gestire la cache. Il frammento di codice qui sotto è tratto da Elegant Themes e it rende possibile il caching del browser consentendo ai visitatori di salvare determinati tipi di file, così la prossima volta che visitano non devono scaricarli di nuovo.
# Abilita il caching del browserExpiresActive On ExpiresByType image / jpg "accesso 1 anno" ExpiresByType image / jpeg "accesso 1 anno" ExpiresByType image / gif "accesso 1 anno" ExpiresByType image / png "accesso 1 anno" ExpiresByType text / css "access 1 month" ExpiresByType application / pdf "accesso 1 mese" ExpiresByType text / x-javascript "accesso 1 mese" ExpiresByType application / x-shockwave-flash "accesso 1 mese" ExpiresByType image / x-icon "accesso 1 anno" ExpiresDefault "accesso 2 giorni"
15. Imposta pagine di errore personalizzate
Puoi utilizzare .htaccess per configurare pagine di errore personalizzate sul tuo sito WordPress. Perché questo metodo funzioni, devi anche farlo creare le pagine di errore personalizzate (custom-403.html
, custom-404.html
nell'esempio) e caricali nella tua cartella principale.
È possibile impostare una pagina di errore personalizzata per qualsiasi codice di stato di errore HTTP (4XX e 5XX codici di stato) che vuoi.
# Imposta le pagine di errore personalizzate ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html