Telefono: +39 392 33 73 731

Due regole utili per il file .htaccess di Contao

Il file .htaccess di Contao permette di convertire tutti gli URL codificati dal CMS quindi "index.php" con l'ID della pagina e la relativa querystring, in "Friendly Urls", cioè quelli determinati dagli alias delle pagine.
Nell'impostazione default avremo come risultato un sito dall'aspetto statico, cioè che ha tutte pagine con l'estensione ".html" ed eventualmente una struttura a "directory" dove in realtà non ci sono cartelle, ma sono passati dei parametri della querystring.

Tutto questo è molto conveniente sia per la leggibilità dell'URL sia per l'indicizzazione in Google. Tuttavia esistono casi in cui questo comportamento non lo vogliamo:

  1. se abbiamo pubblicizzato dei link scritti per scelta grafica o di marketing senza estensione ".html" o addirittura con termine diverso dall'originale. Tuttavia vogliamo che quei link puntino esattamente alle pagine di Contao esistenti.
  2. se abbiamo messo delle cartelle vere dentro la directory di Contao, e vogliamo accederci senza che Contao interpreti quell'indirizzo come errore 404.

Nel file .htaccess, subito dopo la Rewritebase va inserito il seguente codice:

# in questo caso gli url senza estensione .html sono mandati correttamente alla rispettiva pagina
RewriteCond %{REQUEST_URI} (/paginauno|/paginadue|/paginatre)
RewriteRule ^(.*)$ $1.html

# in questo caso posso accedere alla cartella interventi
RewriteRule ^(interventi)($|/) - [L,NC]

Un'altra regola, non direttamente collegata al file di Contao, serve ad impostare "www." davanti agli URL nei casi in cui l'utente scrive solo il dominio. Questo è utile durante una connessione autenticata (members Contao), infatti mi è capitato che non funzionassero alcuni link con percorso assoluto, proprio a causa del path differente.

# add www to url
  RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

In un altro articolo avevo già parlato di alcune regole, le ripropongo.

# reindirizzo tutti i vecchi url contenuti in una sotto cartella non più esistente
RewriteRule ^demo/wbl-demo/(.*)$ it/? [R=301,L]
 
# reindirizzo tutti i vecchi url, che contenevano determinate querystring non più valide
RewriteCond %{QUERY_STRING} ^.*option=com_content.*?$ [OR]
RewriteCond %{QUERY_STRING} ^.*option=com_contact.*?$ [OR]
RewriteCond %{QUERY_STRING} ^.*option=com_rss.*?$
RewriteRule ^(.*)$ it/? [R=301,L]
Martedì 21 Gennaio 2014
(0 commenti)

Aggiungi un commento

Nome
E-mail (non verrà pubblicata)
Sito Web
Commento