Il file .htaccess predefinito di WordPress e le aggiunte sicure
Guida al .htaccess di WordPress
File .htaccess predefinito di WordPress (sito singolo e multisite) | We.Inc
Le regole .htaccess predefinite di WordPress per sito singolo e multisite con sottocartelle o sottodomini, più aggiunte sicure che bloccano wp-config.php e forzano HTTPS. Crea e copia il tuo.
WordPress su Apache ha bisogno di un breve blocco .htaccess nella root del sito che invii a index.php ogni richiesta per un file o una cartella inesistente: è questo che fa funzionare i permalink leggibili. Incolla il blocco tra # BEGIN WordPress e # END WordPress, e metti le tue regole sopra quei marcatori.
Le richieste per index.php stesso vengono lasciate stare
RewriteCond %{REQUEST_FILENAME} !-f
Solo se nessun file reale corrisponde
RewriteCond %{REQUEST_FILENAME} !-d
E nessuna cartella reale corrisponde
RewriteRule . /index.php [L]
Passa tutto il resto a WordPress
Un .htaccess rotto di solito si manifesta con un 404 su ogni pagina tranne la homepage, o con un errore 500 su tutto il sito dopo la modifica di un plugin. Scegli qui sotto il tipo di installazione, seleziona gli extra che vuoi e copia un file completo. La parte WordPress corrisponde alle regole pubblicate nella documentazione per sviluppatori di WordPress.
Scegli sito singolo, multisite con sottocartelle o multisite con sottodomini.
Spunta gli extra che vuoi. Ognuno viene messo sopra i marcatori di WordPress, così WordPress non lo sovrascrive mai.
Copia il file, fai un backup del tuo .htaccess attuale e carica quello nuovo nella cartella che contiene wp-config.php.
Apri un articolo e l'area di amministrazione per conferma, poi vai in Impostazioni, Permalink e fai clic su Salva per far verificare a WordPress le sue regole.
Tieni una copia del file funzionante prima che un plugin lo tocchi. Ripristinare un file che sai essere buono è più veloce che fare il debug di un errore 500.
Se puoi modificare la configurazione principale di Apache, metti lì queste regole. La documentazione di Apache stessa dice che .htaccess costa una ricerca in ogni directory a ogni richiesta.
Non modificare mai a mano il contenuto tra i marcatori BEGIN ed END di WordPress. WordPress può riscrivere quella sezione quando vengono salvate le impostazioni dei permalink.
Nginx ignora completamente .htaccess. Su un hosting Nginx lo stesso compito lo svolge una riga try_files nel blocco server.
Domande frequenti
Dove si trova il file .htaccess in WordPress?
Nella cartella root dell'installazione WordPress, accanto a wp-config.php e alla cartella wp-content. Il nome inizia con un punto, quindi file manager e client FTP spesso lo nascondono finché non attivi i file nascosti.
Come ripristino il .htaccess predefinito di WordPress?
Sostituisci il contenuto del file con il blocco per sito singolo di questa pagina, oppure rinomina il file rotto, vai in Impostazioni, Permalink nell'amministrazione e fai clic su Salva. WordPress scrive un blocco nuovo quando può scrivere nel file.
Perché ottengo errori 404 su ogni pagina tranne la homepage?
Quasi sempre mancano le regole di rewrite o mod_rewrite è disattivato. La homepage si carica perché è index.php stesso; ogni permalink leggibile ha bisogno della regola che invia i percorsi sconosciuti a index.php.
Quale blocco multisite mi serve?
Quello che corrisponde a come è stata installata la rete. I siti in example.com/shop usano il blocco per sottocartelle; i siti in shop.example.com usano il blocco per sottodomini. I due differiscono nel modo in cui tolgono il prefisso del sito dai percorsi di wp-admin e dei file.
È sicuro bloccare l'accesso a wp-config.php nel .htaccess?
Sì. PHP legge wp-config.php dal disco, non via web, quindi negare le richieste web verso quel file non influisce sul sito. La documentazione di WordPress suggerisce la stessa regola FilesMatch mostrata qui.
Come funziona il rewrite
Apache legge le condizioni dall'alto in basso. Una richiesta per un'immagine o un foglio di stile reale corrisponde a -f e viene servita direttamente, una richiesta per una cartella reale corrisponde a -d, e tutto il resto arriva a index.php, dove WordPress cerca l'articolo, la pagina o l'archivio per quell'indirizzo.
La riga HTTP_AUTHORIZATION copia l'header Authorization in una variabile che PHP può leggere. Su alcune configurazioni di server altrimenti PHP non vede mai quell'header, e gli accessi che lo usano non funzionano.
Dove vanno le tue regole
Metti redirect, regole HTTPS e blocchi di accesso sopra # BEGIN WordPress. Le regole vengono eseguite in ordine, quindi un redirect messo dopo il blocco WordPress non verrebbe mai raggiunto per la maggior parte degli URL.
Mantieni le aggiunte poche e testate. Ogni regola viene eseguita a ogni richiesta, e un errore di battitura in qualsiasi punto del file manda giù tutto il sito con un errore 500.
I tre blocchi ufficiali di WordPress
Queste sono le regole che WordPress documenta per ogni tipo di installazione. Usane esattamente una.
Sito singolo
Il blocco per un normale sito WordPress installato nella web root.
Multisite con sottocartelle
Per le reti in cui ogni sito si trova in un percorso come example.com/shop/.
Multisite con sottodomini
Per le reti in cui ogni sito ha il proprio sottodominio, come shop.example.com.
Aggiunte sicure
Ognuna va sopra # BEGIN WordPress. Aggiungine una alla volta e ricarica il sito dopo ciascuna.
Negare l'accesso web ai file sensibili
Usa la direttiva Require di Apache 2.4, quindi un server più vecchio con 2.2 richiederebbe invece la vecchia sintassi Order e Deny.
Forzare HTTPS
Un redirect permanente 301 che mantiene host e percorso. Se il tuo hosting offre un interruttore HTTPS nel pannello, usa quello e salta questo.
Generatore di .htaccess
Tipo di installazione WordPress
Sito singolo
Multisite, sottocartelle
Multisite, sottodomini
Extra inseriti sopra il blocco WordPress
Blocca l'accesso web a wp-config.php, .htaccess, .htpasswd e debug.log
Reindirizza ogni richiesta http:// a https://
Impedisci ad Apache di elencare il contenuto delle cartelle senza file index
Il tuo file .htaccess
Attiva il redirect HTTPS solo quando il tuo certificato funziona, altrimenti i visitatori vedranno un avviso del browser.