domenica 28 giugno 2009

Rewrite di caratteri con % nell'url, per link sbagliati

I Google Webmaster tools segnalavano qualche errore 404, con una serie di caratteri strani dopo la url corretta, rappresentati come di consueto in esadecimale preceduto dal simbolo di percento. Insomma, in questo modo:

URL del sito: abc.html
URL nei log: abc.html%20%B9

In pratica, qualcuno aveva linkato al sito aggiungendo per errore dei caratteri, o non chiudendo le virgolette del tag <a>. E naturalmente questo causava un 404.

Poco male, ho pensato: aggiungo un Redirect 301 e torna tutto a posto.

Niente da fare. Allora ho provato a fare unescape dei caratteri, perchè logicamente a Apache apparivano come caratteri, e non come sequenza di escape. Ma niente.

Okay, allora mod_rewrite. C'è un luogo che terrorizza tutte le Bene Gesserit -per me sono le rewrite rules. Ma se proprio devo lo faccio.

E ancora una volta, niente. Allora ho iniziato a cercare, qualcun altro avrà pure avuto lo stesso problema.

E alla fine ho trovato questo post: http://www.webmasterworld.com/forum92/3174.htm, la soluzione è nel penultimo messaggio.

La rewrite rule va applicata a {THE_REQUEST} che contiene ancora i caratteri in formato escaped. Grazie, Mr. Morgan!

0 commenti:

Posta un commento