Quando «pl» significava due cose diverse
Il 19 agosto 2026 abbiamo aggiunto una regola a .htaccess che blocca una categoria di file da non servire mai direttamente a un browser: copie di codice sorgente rimaste nella web root dopo una modifica — index.php.bak, un config.py abbandonato lì, qualsiasi cosa con un'estensione da script in cui un visitatore potesse scaricare il sorgente come testo semplice invece di eseguirlo.
La regola faceva corrispondenza sull'estensione del file: .php, .py, .rb, .pl, e una dozzina d'altre. .pl è Perl. Questo progetto non ha nemmeno una riga di Perl al suo interno — la regola era precauzionale, non la correzione per un file che esisteva davvero.
Circa un giorno dopo, un visitatore ha segnalato che le anteprime dei contatori erano rotte. Tutte quante, ma solo in una lingua.
L'altro «pl»
stats4u.net sceglie una lingua per ogni visitatore tramite la negoziazione Accept-Language, non un valore predefinito fisso — un browser impostato sul polacco riceve direttamente /pl/, senza alcun redirect coinvolto, e l'inglese è ciò su cui il sito ripiega quando nulla corrisponde. Il polacco è una corrispondenza comune: ci finiscono abbastanza visitatori perché un giorno di miniature rotte non potesse passare inosservato a lungo.
Ogni anteprima di modello è un piccolo file per stile e lingua: cache/preview/2900.pl.svg. Lo schema pensato per intercettare something.pl — uno script Perl — corrispondeva anche a 2900.pl seguito da .svg: un numero di stile, un codice lingua che per coincidenza si scrive come un'estensione da script, e poi il vero tipo di file. Uno schema punto-pl-punto non riesce a distinguere le due cose.
Ogni anteprima .pl.svg e .pl.png nella galleria ha iniziato a rispondere 403 Forbidden. Ogni altra lingua è rimasta intatta, perché nessun altro codice lingua usato da questo sito coincide con una voce nell'elenco delle estensioni. Solo quello.
Cosa è cambiato
pl è stato tolto dall'elenco delle estensioni. Continua a bloccare ogni vera estensione da script per cui questo progetto ha motivo di preoccuparsi; non blocca più una lingua.
Vale la pena mettere per iscritto il motivo per cui è successo: un elenco di estensioni di file e un elenco di codici lingua provengono da due vocabolari diversi, e nulla impedisce a una voce di due lettere di significare entrambe le cose contemporaneamente. Prima di aggiungere qualcosa a uno dei due elenchi, su un sito con prefissi di lingua nel percorso, va controllato anche rispetto all'altro. Noi non l'abbiamo fatto, e c'è voluto un lettore che notasse le miniature rotte — non il nostro monitoraggio — per accorgersene.