Ottima invenzione l’htaccess, peccato che sia anche una delle cause più frequenti di grattacapo e mal di testa.
Questa mattina ricevo un’email di Simone che mi avvisa di un problema sul sito. Accedento al blog dall’indirizzo http://simonecarletti.com/blog
si viene reindirizzati alla pagina https://simonecarletti.com/blog//home/simonecarletti/simonecarletti.com/blog
che genera (ovviamente) un errore 404.
In questi giorni sto lavorando allo sviluppo di questo sito (a presto ulteriori dettagli) che, basandosi su Rails e Movable Type, spreme a dovere l’uso del file .htaccess
.
Indagando il problema ho notato che sembra verificarsi solo in questo caso specifico. Nei casi seguenti nessun problema:
http://simonecarletti.com/
reindirizza ahttps://simonecarletti.com/
http://simonecarletti.com
reindirizza ahttps://simonecarletti.com/
http://simonecarletti.com/blog/
reindirizza ahttps://simonecarletti.com/blog/
http://simonecarletti.com/pagina
reindirizza ahttps://simonecarletti.com/pagina
Purtoppo sembra che, nel caso in cui si acceda all’indirizzo corrispondente al blog senza lo /
, la riscrittura automatica di Apache per normalizzare un percorso ad una cartella aggiungendo lo /
vada in conflitto con le altre regole.
Potete provare voi stessi. Il contenuto dei due .htaccess presenti nelle cartelle /.htaccess
e /blog/.htaccess
è il seguente.
# Redirect www-less to www version of the website
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.simonecarletti.com$ [NC]
RewriteRule ^(.*)$ https://simonecarletti.com/$1 [L,R=301]
Sto ancora tentando di trovare una soluzione elegante al problema. Se qualcuno avesse proposte, ogni suggerimento è ben accetto.
Nota 1. Rimuovendo la direttiva sopra indicata dal file /blog/.htaccess
il sistema funziona correttamente.
Nota 2. Non posso rimuovere quella direttiva per diversi motivi.