Scrivere un .htaccess per il nostro CMS

Giovedì 29 Novembre 2007 - 14:06

di Claudio Garau

CMS

Logo Apache

Se per un determinato progetto decidiamo di non utilizzare soluzioni CMS già pronte e preferiamo la vecchia e cara tecnica dello sviluppo from scratch (cioè partendo da zero), dovremo porci il problema relativo al formato delle URL.

Inutile negarlo, queste hanno ormai assunto un ruolo molto importante per tematiche come posizionamento nelle SERP dei motori di ricerca e ottimizzazione, quindi per non ignorare il problema è bene (già in fase progettuale) che il nostro CMS permetta di proporre sia agli utenti che a Google e compagnia delle URL quanto più possibile User Friendly e Search Engine Friendly.

A questo punto le soluzioni potrebbero essere due: creare un CMS in grado di generare fisicamente file e cartelle, o affidarci al mod_rewrite di Apache (quando disponibile) per scrivere dei file .htaccess appositamente confezionati per il nostro scopo.

La prima soluzione non è molto pratica ed è scarsamente utilizzata nei CMS più noti sviluppati in PHP; è però abbastanza semplice da realizzare associando i file e le cartelle create a dei records in tabella da utilizzare per l’archiviazione delle diverse voci che vanno a comporre le URL (ad esempio: nome cartella = nome_categoria, nome file = nome_pagina).

La seconda soluzione è molto più pratica e professionale, ma richiede buone conoscenze riguardo alla sintassi da utilizzare per la scrittura dei file .htaccess, tra le nozioni necessarie vi sono anche quelle relative all’utilizzo delle espressioni regolari che non sono certo pane per i neofiti.

Fortunatamente, la tecnica della riscrittura delle URL va diffondendosi sempre di più presso gli sviluppatori, di conseguenza sono sempre maggiori le risorse disponibili riguardo all’argomento.
Per coloro che decidono di affrontare la tematica, consiglio di dare uno sguardo al file .htaccess di sNews di cui riporto integralmente le regole per il rewrite:

RewriteEngine On
#RewriteBase /sNews16
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z_]+)/([^/]+) index.php?category=$1&title=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z_]+)/([^/]+)/([^/]+)/ index.php?category=$1&title=$2&commentspage=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_-]+)/([0-9]+)/ index.php?category=$1 articlespage=$2 [L]

Non c’è che dire, è semplice e completo nello stesso tempo prevedendo tutti i casi più ricorrenti di riscrittura; ottimo come spunto per l’integrazione con i CMS “caserecci”.

Tags:

Categoria: CMS | Permalink

Commenti

1

Salve,
ho cercato di adattare questo script per il mio sito in cms, newsphp. ma non ci sono riuscito, mi sapete dire come posso adattarlo al mio sito.

Grazie in anticipo
xoxo

# - postato da xoxo - 30 Novembre 2007 - 16:35

2

Non c’e nessuno che riescha a darmi una drita?!

# - postato da xoxo - 03 Dicembre 2007 - 09:22

3

# - postato da xoxo - 06 Dicembre 2007 - 13:32

4

Mai usato NewsPHP, è un prodotto a pagamento potresti chiedere all’asistenza:
http://www.newsphp.com/support

# - postato da Claudio Garau - 06 Dicembre 2007 - 13:47

5

Salve Claudio,
La mia versione e vechia, e loro non ofrono piu asistenza per quella versione! In pratica io ho questi url:
index.php?id=12781 (articolo)
index.php?cat_id=telefonia (categoria)
index.php?topmenuitem=Chi siamo (pagine create in html)

RewriteEngine On
#RewriteBase /sNews16
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cat_id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z_]+)/([^/]+) index.php?cat_id=$1&id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z_]+)/([^/]+)/([^/]+)/ index.php?topmenuitem=$1 [L]

con questa modificha, mi funziona solo il rewrite della “categoria” le altre no!
Mi sapeste dire dove sbaglio?

Saluti
xoxo

# - postato da xoxo - 07 Dicembre 2007 - 14:47

6

se la versione è vecchia ti becchi quella nuova , altrimenti io mi preoccuperei seriamente della sicurezza del sito piuttosto che dell’.htaccess =) salute

# - postato da murdercode - 22 Settembre 2008 - 14:42

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento