WOMAD Sicily

Robert PlantIl WOMAD festival si terrà nuovamente anche in Sicilia. A Taormina, dal 13 al 15 Luglio 2007, al Teatro Antico.

WOMAD sta per World Of Music, Art and Dance. La manifestazione è promossa in Sicilia da Taormina Arte.

Perchè un post su questo? Ma semplicemente perchè l’ultima serata vedrà fra i protagonisti il signore in foto ๐Ÿ™‚ . Per quei 2 o 3 che non l’avessero riconosciuto (foto datata ’73) il biondone a fianco è Robert Plant, voce degli immensi Led Zeppelin.

Spero di non attirarmi troppa sfiga addosso dicendo che poter vedere dal vivo Robert realizzerà uno dei sogni della mia vita.

Sono cresciuto con lui e grazie a lui. I suoi duetti con Jimmy (…fate la pace…), il suo braccio che indica John Paul pochi secondi prima che parta l’assolo di organi in "No Quarter", la sua amicizia con Bonzo, del quale gridava il nome alla fine di Moby Dick…

Non rivedrò dal vivo tali cose purtroppo, ma lui (almeno lui) sarà li ed io finalmente potrò gridare "Se Dio esiste, stasera sta cantando (anche) per me".

Costuirsi un permalink nuovo senza perdere il vecchio

ApacheMolti hanno letto che sto lavorando ad una nuova piattaforma di blogging. Il mio intento (tempo permettendo) è quello di ritrovarmi con qualcosa che risponda scrupolosamente alle mie esigenze.

Potendo sfruttare Apache sul nuovo server che (spero entro 3 mesi) ospiterà il blog, una delle cose che ho subito fatto è impostare un permalink che eliminasse qualsiasi tipo di query string.

Mi si pongono però due questioni:

  • Come impostare il nuovo permalink?
  • Come non perdere l’indicizzazione dei motiri di ricerca?

Mantenere l’indicizzazione
Cominciamo con il risolvere la questione più importante: voglio che nessuno possa vedersi rispondere da un errore 404 se mi ha trovato da un vecchio permalink. Per farlo, basta impostare un redirect permanent nel file .htaccess in modo tale che la ridirezione avvenga al giusto post!
In parole povere chi chiede la pagina: dblog/articolo.asp?articolo=ID dovrà essere ridirezionato su index.php?post=ID.

Basta una riga di .htaccess ๐Ÿ™‚

RedirectMatch 301 dblog/articolo.asp?articolo=(.*) /index.php?p=$1

In questo modo chiunque chieda una pagina del vecchio blog sarà reindirizzato alla query string del nuovo blog in automatico.
Con la notazione 301 (che avrei potuto sostituire con la parola "permanent") informo i motori di ricerca che il cambiamento è permanente e li invito ad aggiornare i loro archivi.

Friendly Permalink
In un sistema di blogging in cui tutto gira sull’ID degli articoli (chiave primaria ovviamente, quindi unico elemento irripetibile in due o più post), la query che si occupa di selezionare l’articolo nella relativa tabella usa proprio questo parametro come discriminante.

Vista anche la struttura del vecchio permalink la tentazione di strutturarlo in questo modo:

http://www.davidonzo.com/p/ID

E’ stata grande. Ma perchè non inserire anche il title nel permalink? Il risultato è una maggiore reperibilità di informazioni da parte dei motori di ricerca. Nonchè una maggiore leggibilità umana dell’argomento del link (forse sono il solo, ma leggo sempre il link nella pagina risultati del motore di ricerca).

Mi sono deciso! Anche il title deve far parte del permalink! Come lo strutturo per far si di non creare nuovi campi nella tabella dei post ed evitando di modificare la query più importante dell’applicazione? Facile ๐Ÿ™‚ Uso la stessa funzione che si occupa di estrapolare il titolo del post, sostituisco i caratteri non alfanumerici con dei trattini ed il permalink è bello che fatto!

Andiamo con calma:
– Ipotizziamo che il titolo del post sia la variabile $title. Per ripulire il title dagli spazi e da altri caratteri che è meglio non compongano un’URL pasterà fare la seguente:

$title = preg_replace(‘#[^a-zA-Z0-9]#’, ‘-‘, $title);

Se nel titolo è compreso un carattere non alfanumerico sostituisco il matching con un trattino. Perchè proprio il trattino? Perchè nelle URL questo è letto dai motori di ricerca come uno spazio, quindi sarà indicizzato per quello che è come frase e non come singola parola. Eventualità che si sarebbe verificata se invece del trattivo avessi usato l’underscore (il trattino basso).
Provate un po’ a cercare su google "Tutto_Gratis", "Tutto-Gratis" e "Tutto Gratis". La seconda e la terza ricerca avranno risultati identici, la prima differirà di molto ๐Ÿ™‚

Alla fine il permalink sarà un qualcosa del genere.

http://www.davidonzo.com/p/ID/Titolo-Del-Post/

Ma mi si pone un altro problema! Come regolarmi con il redirect permanent sopra impostato?
La soluzione più logica mi è sembrata prevedere per i primi tempi una convivenza fra permalink, impostando un redirect coerente con il nuovo formato.

RewriteRule ^p/([^/.]+)/(.*)/?$ index.php?p=$1 [L]
RewriteRule ^p/([^/.]+)/?$ index.php?p=$1 [L]

#Ridireziono nel giusto modo anche il vecchio permalink

RedirectMatch 301 dblog/articolo.asp?articolo=(.*) /p/$1

Critiche, suggerimenti o fanculizzazioni?
Sono sempre gradite…