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 un 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 sui server Web Apache. La maggior parte dei siti WordPress viene eseguita su un server Apache, sebbene una piccola parte sia supportata da Nginx . In questo articolo puoi trovare una raccolta di snippet di codice .htaccess, la maggior parte dei 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 poter sempre tornare alla versione precedente se qualcosa va storto.
E, se sei qualcuno che preferisce non toccare i file di configurazione, ti consiglio il plug-in BulletProof Security che è il plug-in di sicurezza gratuito .htaccess più affidabile (e probabilmente il più vecchio) disponibile sul mercato.
Crea il .htaccess WP predefinito
.htaccess funziona su una base per directory, il che significa che ogni directory può avere il proprio file .htaccess. Può facilmente accadere che il tuo sito WordPress non abbia ancora un file .htaccess . Se non trovi un file .htaccess nella tua directory root, crea un file di testo vuoto e .htaccess
.
Di seguito, puoi trovare il file .htaccess predefinito utilizzato da WordPress. 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 righe che iniziano con #
sono commenti. Non modificare nulla tra le righe # BEGIN WordPress
e # END WordPress
. Aggiungi le tue regole .htaccess personalizzate al di sotto di queste regole predefinite .
Tutti i frammenti di codice che puoi trovare in questo articolo vanno al file .htaccess principale trovato nella tua directory principale.
1. Nega l'accesso a tutti i file .htaccess
Il codice sottostante nega l'accesso a tutti i file .htaccess che hai installato nel tuo WordPress. In questo modo puoi impedire alle persone di vedere le configurazioni del tuo server web .
# Nega l'accesso a tutti i file .htaccessOrdine Consenti, Nega Rifiuta da tutti Soddisfa tutto
2. Proteggi la tua configurazione WP
Il file wp-config.php
contiene tutte le configurazioni WP, incluso il login e la password del database. Puoi negarlo da tutti o dare il permesso agli amministratori di accedervi .
Se si sceglie l'ultimo commento, lasciare la riga # Allow from xx.xx.xx.xxx
(rimuovere #
dall'inizio della riga) e inserire l'indirizzo IP xx.xx.xx.xxx
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 per impostazione predefinita, che è un'interfaccia che rende possibile la pubblicazione remota . Tuttavia, sebbene sia una funzionalità eccezionale, è anche una delle maggiori vulnerabilità di sicurezza di WP, poiché gli hacker potrebbero sfruttarla per gli attacchi DDoS .
Se non vuoi usare questa funzione è meglio disabilitarla . Proprio come prima, puoi aggiungere eccezioni commentando il numero # Allow from xx.xx.xx.xxx
riga # Allow from xx.xx.xx.xxx
e aggiungendo gli IP dei tuoi amministratori.
# Protegge XML-RPC, previene l'attacco DDoSRifiuta ordine, Consenti # Consenti da xx.xx.xx.xxx # Consenti da yy.yy.yy.yyy Rifiuta da tutti
4. Proteggi la tua area di amministrazione
È anche una buona idea proteggere l'area di amministrazione dando accesso solo agli amministratori. Qui, non dimenticare di aggiungere almeno un'eccezione "Permetti" altrimenti non potrai 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, Permetti nega da tutti Permetti da xx.xx.xx.xxx Permetti 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ò sfogliare le proprie cartelle e file, inclusi upload di contenuti multimediali e file plugin. Inutile dire che si tratta di un'enorme vulnerabilità alla sicurezza.
Di seguito, puoi vedere come appare un tipico elenco di directory di WordPress .
Fortunatamente, hai solo bisogno di una riga di codice per bloccare questa funzione. Questo snippet di codice restituirà 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 del 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 negli attacchi a forza bruta .
Inserisci il codice qui sotto nel tuo file .htaccess per impedire l'enumerazione del nome utente .
# Impedisce l'enumerazione del nome utente RewriteCond% {QUERY_STRING} author = d RewriteRule ^ /? [L, R = 301]
7. Blocca spammer e bot
A volte potresti voler 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 robotOrdine Consenti, Nega Rifiuta da xx.xx.xx.xxx Rifiuta da aaaaaaaaaaaa Permetti a tutti
8. Impedire l'hotlinking dell'immagine
Sebbene non costituisca una minaccia per la sicurezza, l' hotlinking delle immagini è ancora una cosa fastidiosa. Le persone non usano solo 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, sia che accada accidentalmente o da un malintenzionato. Questo snippet di codice proviene dalla società di sicurezza del sito Web di 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 gestire facilmente i reindirizzamenti permanenti con .htaccess. Per prima cosa devi aggiungere il vecchio URL, quindi seguire il nuovo URL che punta alla pagina a cui desideri 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. È necessaria una pagina di manutenzione separata ( maintenance.html
nell'esempio) per far funzionare questa regola .htaccess. 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
La cartella /wp-includes/
contiene i file core di WordPress necessari per il funzionamento del CMS. Non ci sono contenuti, plug-in, temi o qualsiasi altra cosa che un utente possa desiderare di accedere qui. Quindi per aumentare la sicurezza è meglio limitare tutti gli accessi .
# 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 da 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 a gestire la cache . Il frammento di codice qui sotto è tratto da Elegant Themes e rende possibile il caching del browser abilitando i visitatori a salvare determinati tipi di file, quindi la volta successiva che visitano non devono scaricarli nuovamente.
# 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 creare le pagine di errore personalizzate ( custom-403.html
, custom-404.html
nell'esempio) e caricarle nella tua cartella principale.
È possibile impostare una pagina di errore personalizzata per qualsiasi codice di errore di errore HTTP ( codici di stato 4XX e 5XX) che si desidera.
# Imposta le pagine di errore personalizzate ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html
22 plugin WordPress per la creazione di moduli, sondaggi e sondaggi
È risaputo che uno dei modi migliori per coinvolgere gli utenti sul tuo sito Web e raccogliere informazioni approfondite sugli utenti è tramite sondaggi, moduli e sondaggi. Per i siti web creati sulla piattaforma WordPress, c'è un'abbondanza di plug-in gratuiti che puoi sfruttare.Tuttavia, per risparmiarti dallo sforzo faticoso di cercare i migliori plug-in di WordPress per sondaggi e sondaggi, ho raccolto qui alcune delle migliori scelte che ho imparato a conoscere, usare e sperimentare.Da
Modi intelligenti per procrastinare durante le festività natalizie
Sai che è la stagione delle vacanze quando vedi mercati decorati con colori vivaci, vendite speciali nei negozi e candele accese in ogni altra finestra intorno a te. Tuttavia, ci sono anche alcuni indicatori personali della stagione delle vacanze come; Tintinnio di Natale bloccato nella tua testa, e una sensazione di non-sentire-come-fare-qualsiasi-lavoro .