File .htaccess per WordPress: guida ai suoi principali misteri

File .htaccess per WordPress: guida ai suoi principali misteri

Il file .htaccess (attenzione al punto iniziale: in Linux, esso indica che si tratta di un file nascosto) viene utilizzato per configurare a livello server il software che farà funzionare Apache, senza il quale non potrebbe esistere la logica client-server che fa funzionare il nostro sito.

In generale esiste un file htaccess principale collocato nella root del nostro sito, ed è quello il più importante da impostare e da conoscere. Per altre ragioni, comunque, possono esistere più file .htaccess in altre ulteriori directory di WordPress. Uno dei principali scopi del file htaccess, anche se non è l’unico, è quello di gestire i permalink del nostro sito web, cosa che vedremo immediatamente.

Ricordate che:

  1. si tratta di impostazioni , non banali e spesso non indicate per l’utente medio;
  2. alcuni hosting potrebbero impedirvi di impostare alcune opzioni sul file .htaccess;
  3. non tutte le direttive funzionano copia-incollandole, in quanto potrebbero richiedere altri interventi lato server (tipicamente via cPanel/Plesk, ad esempio un cambio di versione PHP);
  4. anche un errore banale sul file .htaccess impedirà a tutto il sito di funzionare correttamente (errore 500, di solito); per cui attenzione alle modifiche e fatevi sempre una copia del file originale.

La forma base di un file htaccess per far funzionare WordPress è la seguente:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Nello specifico:

  1. le righe che iniziano con # sono dei semplici commenti;
  2. IfModule serve ad attivare direttive sul componente di Apache mod_rewrite;
  3. RewriteEngine è il modulo di riscrittura degli URL, impostato ad ON (attivato);
  4. RewriteRule è una regola di riscrittura degli URL, che si attiva su qualsiasi forma degli stessi; index.php serve a specificare tecnicamente questo aspetto, mentre la [L] finale indica che si tratta dell’ultima direttiva, Last;
  5. RewriteCond serve nella prima riga a specificare la presenza di qualsiasi URL che non sia un file;
  6. RewriteCond serve nella seconda riga a specificare la presenza di qualsiasi URL che non sia una directory;
  7. Rewriterule nell’ultima riga fa in modo che la riscrittura diventi effettiva sul server, anche qui che sia l’ultima direttiva [L].

Su un WordPress multisite, la forma generica del file htaccess è invece leggermente più complessa.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Opzioni

Le opzioni si scrivono così, come una riga (direttiva) in questo modo:

Options None

ovvero una direttiva Options seguita da un valore di parametro, che nello specifico è None e che significa “Disabilita tutte le opzioni”. In generale, potrebbe essere additivo o sottrattivo; rispettivamente, nel primo caso avremo un segno + oppure un segno – rispettivamente per aggiungere o togliere un’opzione.

Possibili valori delle Options sono i seguenti:

None
Tutte le opzioni disabilitate
All
Tutte le opzioni abilitate (valore di default)
ExecCGI
Abilita script CGI (normalmente non serve)
FollowSymLinks
Segui i link simbolici (serve su alcuni hosting)
Includes
Consenti inclusioni lato server di moduli aggiuntivi
IncludesNOEXEC
Consenti inclusioni lato server di moduli aggiuntivi in modo più restrittivo / sicuro
Indexes
Specifica mappa degli URL visibili

Ad esempio, di seguito disabilitiamo le opzioni principali ma ci limitiamo ad aggiungere la possibilità di seguire i link simbolici.

Options None
Options FollowSymLinks

DirectoryIndex

In linea di massima, questa direttiva è importante perchè specifica quale file verrà richiamato nel caso in cui un client vada ad aprire una directory: se in una directory ci sono due file, uno index.html e l’altro index.php ad esempio, mediante tale direttiva sarà possibile specificare la priorità nell’apertura (e “mascherare” l’estensione effettiva del file nella directory, per ragioni di sicurezza)

DirectoryIndex index.php index.html /index.php

Compressione HTTP delle pagine

Per ragioni di efficenza e velocità del sito web, si può pensare di abilitare la compressione HTTP; in questo caso basta utilizzare queste direttive.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Caso ancora più comune, si può abilitare la compressione solo su alcuni tipi di file (per saperne di più sull’argomento trovate in questo portale, nella sezione Guide WordPress, una buona quantità di tutorial sull’ottimizzazione delle prestazioni di un sito in generale).

&lt;FilesMatch "\.(js|css|txt|xml)$"&gt;
SetOutputFilter DEFLATE
&lt;/FilesMatch&gt;

Impostare SSL

Per ragioni di sicurezza, ed avendo un certificato SSL acquistato e configurato, possiamo imporlo a WordPress. In questo caso è decisamente consigliato inserire un file .htaccess del genere NON nella root principale (molti siti, sbagliando a mio avviso, l’hanno fatto e continuano a farlo) bensì nella cartella wp-admin del vostro sito: in questo modo andrete a proteggere il login del vostro sito con HTTPS.

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "www.miosito.com"
ErrorDocument 403 https://www.miosito.com

Si possono usare plugin per modificare .htaccess?

Esiste anche un plugin gratuito che permette di agire sul file.htaccess direttamente dal backend amministrativo di WordPress, ovvero WP htaccess Control. Il mio suggerimento è quello di usare un plugin del genere solo se siete dei principianti: la cosa migliore resta sempre quella di agire via FTP su questo file.

Photo by Terence . Chang

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Ti potrebbero interessare (Guide WordPress):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.