SYSADMIN JOURNAL / Linux · Networking · Security · HostingProcedure, appunti e soluzioni tecniche
Apache

Apache: rimuovere un workaround che riscrive lo User-Agent Googlebot

Pubblicato il 12/11/2026

Guida basata su un intervento sistemistico concluso e verificato. Rimozione sicura di regole RequestHeader che trasformavano Googlebot in un normale browser, con test sui vhost e sui reverse proxy.

Contesto

Durante un incidente IIS era stata introdotta una mitigazione temporanea: quando la richiesta dichiarava Googlebot, Apache sostituiva lo User-Agent con quello di un browser Chrome comune. Questo può aiutare temporaneamente a distinguere un problema di cloaking, ma nasconde al backend il vero User-Agent e rende meno affidabili log, analisi SEO e diagnosi.

Come individuare le regole

grep -RInE 'TC_GOOGLEBOT|RequestHeader[[:space:]]+set[[:space:]]+User-Agent|Googlebot'   /etc/apache2/sites-available   /etc/apache2/sites-enabled   /etc/apache2/conf-enabled 2>/dev/null

Non rimuovere a caso le condizioni RewriteCond %{HTTP_USER_AGENT} usate per filtrare bot malevoli: cercare soltanto il workaround che sovrascrive l’header inoltrato al backend.

La regola temporanea

<IfModule mod_headers.c>
    SetEnvIfNoCase User-Agent "Googlebot" TC_GOOGLEBOT=1
    RequestHeader set User-Agent "Mozilla/5.0 (...)" env=TC_GOOGLEBOT
</IfModule>

La correzione consiste nella rimozione del blocco che definisce TC_GOOGLEBOT e modifica User-Agent, senza cambiare le altre ACL.

Procedura senza fermare i siti

Per ogni proxy: salvare prima i file interessati; correggere sia i file attivi sia gli omonimi in sites-available; verificare con apachectl -t; eseguire il reload; quindi controllare le risposte HTTP passando alternativamente uno User-Agent Googlebot e uno User-Agent browser. Se la configurazione attiva è una copia indipendente e non un symlink, è necessario allineare i due file deliberatamente.

Controllo funzionale

curl --max-time 8 -sS -o /dev/null -w '%{http_code} %{time_total}\n'   -A 'Googlebot/2.1 (+http://www.google.com/bot.html)'   -H 'Host: NOME_VHOST' http://IP_PROXY/
curl --max-time 8 -sS -o /dev/null -w '%{http_code} %{time_total}\n'   -A 'Mozilla/5.0' -H 'Host: NOME_VHOST' http://IP_PROXY/

Esito del caso

Il workaround è stato rimosso dai quattro proxy, incluse alcune regole duplicate in un VirtualHost. I test con i due User-Agent hanno restituito i codici attesi e nessun timeout; i backend IIS erano già stati bonificati e reintrodotti nel bilanciatore.

Lezione

Una mitigazione di emergenza va tracciata e rimossa quando non serve più: lasciarla permanentemente può falsare osservabilità, risultati dei crawler e procedure di sicurezza.

Guide correlate

I comandi con nomi segnaposto vanno adattati al proprio ambiente. Le configurazioni di produzione, gli IP e le credenziali non sono riportati.