You are here

Drupal : Htaccess e RewriteRule, attenzione alla direttiva

Inviato da giovanninews on Mer, 21/03/2012 - 17:07

Drupal - la direttiva RewriteRule in htaccess Dopo circa 4 mesi dalla pubblicazione dell' articolo "Contenuti duplicati in Drupal ed il sito web lato seo" sono ancora quì a fare una correzione importante su quanto detto.

L' articolo indicato conteneva un errore di fondo su come standardizzare la home page e restituire sempre lo stesso indirizzo, sia per l' url miosito.com che per l' url miosito.com/index.php ( direttiva RewriteRule in htaccess ).

Sembra che la direttiva per Apache RewriteRule ^index\.php$ http://miosito.com/$1 [L,R=301] inserita nel file htaccess non sia ben digerita dai siti web che utilizzano Drupal come cms, almeno credo.

La mia esperienza riferisce che, i siti web con Drupal in cui la direttiva htaccess era stata applicata, dopo circa 4 mesi di buon funzionamento, hanno smesso di funzionare.

Mi sono accorto della cosa dopo circa 20 ore dal malfunzionamento, in quanto, sebbene i siti fossero normalmente raggiungibili nella home page, il clic su qualsiasi link che rimandava ad una pagina interna del sito, con Firefox produceva l' errore:

Questa pagina non reindirizza in modo corretto. Firefox ha rilevato che il server sta reindirizzando la richiesta per questa pagina in modo che non possa mai essere completata. Questo problema spesso è causato dal blocco o dal rifiuto dei cookie.

Accedendo con altri browser, avevo un errore simile.

In pratica non riuscivo ad entrare più neanche come amministratore. Da un primo controllo sulla home page con il tools Link Checker di W3C, sembrava che il problema fosse dovuto a tanti redirect 301 per le pagine interne, ma lo scorrere delle url non mi permetteva di focalizzarle.

Il controllo con il tools per i check links di Site Valet svela l' arcano; i redirect 301 sono tutti percorsi di sistema, sono i percorsi nativi di Drupal visualizzati non più nè come alias e nè come url puliti dal clean urls.

In pratica, l' ultima riga del file .htaccess nativo di Drupal contenente la direttiva RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] , sembra che sia completamente storpiata o invalidata dalla direttiva RewriteRule indicata ed inserita prima.

Eliminando dai files .htacces la direttiva RewriteRule ^index\.php$ http://miosito.com/$1 [L,R=301] i siti web tornano a funzionare. La cosa strana, che non capisco, è perchè tutto ciò sia successo dopo circa 4 mesi di buon funzionamento.

Comunque, sempre in relazione allo stesso articolo, comunico che il test di Virante.com per i Duplicate Content, per quello che conta, è al momento eseguito con successo in ogni sua parte, come vediamo dall' immagine che segue.

Questo anche per sfatare il mito di Wordpress, dimostrando che con Drupal si può fare lo stesso bene e forse anche meglio di Wordpress.

Il test Duplicate Content in Virante.com