Una delle domande comuni che arrivano al nostro support: cos’è il file htaccess ? E soprattutto a cosa serve questo elemento? solitamente queste domande vengono poste quando si hanno problemi con il sito web, oppure quando determinate cartelle del sito non sono accessibili avendo come risposta uno dei più generici messaggio di errore, L’errore 500.

In questo tutorial vedremo di cosa si tratta e lo scopo dai file chiamati .htaccess, file che permettono di utilizzare direttive di apache specifiche per le directory, per i file, per la gestione degli errori, per le rewrite rules, per configurare php e per tante altre cose ancora.

Cos’è il file .htaccess

Il file .htaccess è un documento di testo semplice con delle regole Apache di configurazione per svolgere operazioni specifiche a livello di directory. Detto in altre parole, questo file dà indicazioni specifiche al web server su come comportarsi in determinate occasioni. Sempre per quanto concerne le cartelle. 

Per ogni richiesta ricevuta, il server esegue una scansione di eventuali file htaccess all’interno della directory. Importante ricordare questo dettaglio: le istruzioni contenute in una cartella vengono estese anche ai livelli inferiori. Ovvero alle sottodirectory. In questo modo puoi dare regole importanti per interpretare nel miglior modo possibile il lavoro del sito.

Scope del file .htaccess

L’ambito, o lo scope, dei file htaccess si restringe alla cartella nella quale è presente il file. L’utilizzo di direttive che richiamino, in qualsiasi modo, cartelle precedenti nell’albero delle directory provocherebbero un “Internal Server Error”, ovvero un’errore di tipo http 500. Lo Scope comprende anche tutte le sotto cartelle ed i relativi file presenti nella cartella principale.

Come detto prima, il file htaccess è un documento di testo che contiene delle indicazioni su come deve comportarsi il web hosting nel momento in cui viene definita una specifica chiamata nei confronti di un documento web. Si tratta di un comando gerarchico, influenza la directory e le successive. Quindi se il file si trova nella root le sue regole saranno applicate a tutte le cartelle. A meno che non ci siano altre indicazioni, ovvero altri file htaccess. Ma a cosa serve?

Con l’htaccess puoi, per esempio, configurare un redirect 301, ovvero puoi suggerire che un determinato URL è stato cambiato. In questo modo puoi organizzare le tue risorse, o lavorare in termini di ottimizzazione SEO per avere dei permalink sempre descrittivi. Puoi anche impedire la lettura del contenuto di una cartella, limitare le risorse del webserver.

Possibili problemi, tra i più diffusi

  • Nel caso che i file htaccess non vi funzionino potrebbe essere necessario cercarne la causa all’interno del file di configurazione di apache: esiste una direttiva, AllowOverride, che indica cosa possono e non possono contenere i file htaccess. Di default questa direttiva è impostata su None e quindi in locale, per ottenere un corretto funzionamento, è necessario impostarla su All
  • Quando si importa/migra un sito, sia manualmente che utilizzando uno script/plug-in o software, come per esempio WordPress toolkit, è comune importare anche tutti i file .htaccess presenti nel sito localizzato all’origine. Spesso questo è causa di problemi legati al funzionamento del sito, in special modo per i siti costruiti con WordPress in quanto i file .htaccess sono stati editati o precompilati da sistemi e locazioni diverse da quella in cui è stata eseguita la migrazione. In questo caso potremmo riscontrare malfunzionamenti di diverso tipo tra cui il mancato collegamento al database, oppure l’impossibilità di accedere a determinate cartelle. Questo non significa che vi sia un problema di funzionamento del server, significa che vi è un problema di configurazione del file htaccess che compromette il corretto funzionamento del server, impedendogli di poter accedere a determinate cartelle, file o database. In poche parole, il web server funziona benissimo, tuttavia il file htaccess che hai importato o che hai configurato, pone dei veti o impedisce al web server di poter funzionare correttamente o di poter accedere ad una cartella/file/indirizzo.
  • Il file .htaccess è spesso una delle principali cause di sito, o parti del sito web non accessibile con un ritorno di errore http 500 “Internal Server Error

Come risolverli

La migliore soluzione in questi casi è quella di rinominare il file .htaccess ( come per esempio: .htaccess_old ) della cartella principale ed eventualmente anche tutti quelli presenti nelle altre cartelle (in questo caso i problemi riscontrati devono risolversi) per poi prenderne visione, caso per caso, adattandoli a nuove impostazioni necessarie.

Per creare, modificare e quindi intervenire sui file .htaccess è necessario avere una buona padronanza dei comandi che ne compongono la struttura e ne influenzano il corretto funzionamento del web server apache anche per le funzioni PHP. Se sei uno sviluppatore certamente conoscerai la corretta configurazione ed i comandi eseguibili dal file htaccess, tuttavia potrai sempre contare sull’aiuto del tuo hosting provider quantomeno per poter rinominare il file in modo tale che bossa sbloccare e quindi eliminare qualsiasi blocco che possa impedire il corretto funzionamento del sito.

Nel caso specifico delle funzioni PHP, i pannelli di gestione Plesk e cPanel sono certamente più adatti (se con i rispettivi moduli di gestione attivati) e ne semplificano certamente la configurazione, per tutto il tuo piano di hosting e sito web