Verifica sintattica del file .htaccess
Basta incollare il contenuto del file .htaccess per rilevare all'istante gli errori più tipici: blocchi non chiusi, nomi di direttiva sbagliati, argomenti mancanti nelle regole di riscrittura e condizioni rimaste senza regola.
Consigli
- Questa verifica è un'analisi statica euristica riga per riga e non un vero analizzatore di Apache. Prima di applicare le modifiche, provate sempre su un servente reale o su un ambiente di prova.
- Se potete amministrare direttamente Apache, il comando
apachectl configtestresta il controllo sintattico più affidabile. Questo strumento è pensato per i casi in cui non sia disponibile, come i serventi condivisi. - L'avviso sugli errori di digitazione nei nomi delle direttive è una supposizione di bassa attendibilità, fondata su un elenco di riferimento: usando direttive di moduli poco diffusi, l'avviso può comparire anche se la scrittura è corretta.
- È consueto accumulare più condizioni di riscrittura in righe consecutive: l'avviso compare soltanto quando all'ultima di esse non segue alcuna regola.
- Prima di caricare in produzione conviene applicare le modifiche a poco a poco e verificare per gradi che non incidano sul funzionamento esistente.
Domande frequenti
RewriteRule schema destinazione [contrassegni], con tre elementi. Lo schema è un'espressione regolare che si confronta con il percorso richiesto, senza la barra iniziale, e nella destinazione si possono richiamare i gruppi fra parentesi con $1 e simili. I contrassegni si indicano fra parentesi quadre separati da virgole, per esempio [L] per interrompere l'elaborazione delle regole successive o [R=301] per un reindirizzamento permanente.%{REQUEST_FILENAME} !-f, che si applica soltanto quando il file non esiste.
A proposito — perché si chiama .htaccess
Il nome .htaccess è l'abbreviazione di «accesso all'ipertesto» e risale ai primi servienti web della metà degli anni Novanta e alle prime versioni di Apache. In origine serviva a impostare l'autenticazione con parola d'ordine cartella per cartella e fu concepito perché il titolare di ciascuna cartella potesse sovrascrivere le impostazioni del proprio ambito senza che l'amministratore dovesse toccare il file di configurazione principale.
La forza del file sta nel fatto che, purché Apache lo consenta con l'apposita direttiva, basta caricarlo via trasferimento file o dal gestore di file perché le impostazioni abbiano effetto immediato. Anche chi, in un ambiente di ospitalità condivisa, non ha alcun accesso al file di configurazione del servente può così governare nel dettaglio reindirizzamenti, memorizzazione e restrizioni d'accesso cartella per cartella.
Questa comodità ha però un prezzo. La documentazione ufficiale di Apache afferma esplicitamente che, avendo accesso ai file di configurazione del servente, conviene scrivere lì anziché nel .htaccess. La ragione è semplice: a ogni richiesta Apache rilegge il file risalendo dalla cartella interessata fino alla radice, con un costo non trascurabile rispetto alla configurazione principale.
Inoltre un errore di sintassi provoca, in molti ambienti condivisi, un errore interno del servente su tutta la cartella, con una pagina bianca e non poco tempo perso a individuarne la causa. Affiancare alla lettura a vista un controllo statico come questo aiuta a prevenire incidenti dovuti a semplici distrazioni.