Chi Siamo Area Clienti Promo del Mese Dicono di Noi Portfolio FAQ Blog
Senza categoria

Regex e Redirect Avanzati con Redirection: Pattern Matching

· 8 min di lettura

Le Espressioni Regolari: Il Superpotere dei Redirect

Le espressioni regolari (regex) sono uno degli strumenti più potenti a disposizione di un webmaster, e il plugin Redirection le supporta pienamente. Con una singola regola regex, puoi gestire centinaia o migliaia di redirect che seguono un pattern comune, risparmiando tempo e mantenendo la configurazione pulita e gestibile. Tuttavia, le regex possono anche essere pericolose: una regola mal scritta può catturare URL che non dovrebbe, causando redirect indesiderati e problemi di navigazione.

In questa guida, ti insegneremo a padroneggiare le espressioni regolari nel contesto dei redirect WordPress. Partiremo dalle basi e arriveremo a pattern avanzati, con esempi pratici e testati che potrai applicare direttamente al tuo sito.

Fondamenti delle Espressioni Regolari

Un’espressione regolare è un pattern di testo che descrive un insieme di stringhe. Invece di specificare un URL esatto come /vecchia-pagina/, una regex può descrivere un pattern come “qualsiasi URL che inizia con /blog/ seguito da un anno a 4 cifre”. Vediamo i caratteri e i costrutti fondamentali:

Il punto (.): corrisponde a qualsiasi singolo carattere. Ad esempio, p.gina corrisponde a “pagina”, “pugina”, “p1gina”, ecc.

L’asterisco (*): indica “zero o più ripetizioni” del carattere precedente. ab*c corrisponde a “ac”, “abc”, “abbc”, “abbbc”, ecc.

Il più (+): indica “una o più ripetizioni” del carattere precedente. ab+c corrisponde a “abc”, “abbc”, “abbbc”, ma non a “ac”.

Il punto interrogativo (?): indica “zero o una ripetizione”. colou?r corrisponde sia a “color” che a “colour”.

Le parentesi quadre ([]): definiscono un insieme di caratteri. [aeiou] corrisponde a qualsiasi vocale. [0-9] corrisponde a qualsiasi cifra. [a-z] corrisponde a qualsiasi lettera minuscola.

Il caret (^): indica l’inizio della stringa. ^/blog/ corrisponde solo agli URL che iniziano con “/blog/”.

Il dollaro ($): indica la fine della stringa. /contatti/$ corrisponde solo agli URL che terminano esattamente con “/contatti/”.

Le parentesi tonde (()): creano un “gruppo di cattura”. Il testo catturato può essere riutilizzato nell’URL di destinazione tramite i riferimenti $1, $2, ecc.

L’escape (): rende letterale un carattere speciale. . corrisponde a un punto reale, non a “qualsiasi carattere”.

Attivare le Regex in Redirection

Per creare un redirect con espressione regolare in Redirection, devi attivare esplicitamente l’opzione regex. Nel modulo di creazione del redirect, espandi le opzioni avanzate cliccando sull’icona dell’ingranaggio. Vedrai un checkbox “Regex”: attivalo per abilitare il supporto alle espressioni regolari nel campo Source URL.

Opzioni avanzate di Redirection con attivazione regex

Quando la regex è attiva, Redirection tratterà il campo Source URL come un’espressione regolare e non come un URL letterale. Questo significa che i caratteri speciali (., *, +, ?, ecc.) verranno interpretati come operatori regex e non come caratteri normali.

Esempi Pratici: Dal Semplice al Complesso

Esempio 1: Rimuovere una directory dal percorso

Hai spostato tutti gli articoli da /news/titolo-articolo/ a /blog/titolo-articolo/. Invece di creare un redirect per ogni articolo, puoi usare una singola regex:

Source URL: ^/news/(.+)$
Target URL: /blog/$1

Il gruppo di cattura (.+) cattura tutto ciò che segue /news/ e lo rende disponibile come $1 nell’URL di destinazione. Così, /news/guida-wordpress/ viene reindirizzato a /blog/guida-wordpress/, /news/seo-2026/ a /blog/seo-2026/, e così via.

Esempio 2: Rimuovere la data dai permalink

I tuoi permalink contenevano anno e mese (es. /2024/03/titolo-articolo/) e ora usi solo il titolo (/titolo-articolo/):

Source URL: ^/(d{4})/(d{2})/(.+)$
Target URL: /$3

Qui usiamo tre gruppi di cattura: (d{4}) per l’anno a 4 cifre, (d{2}) per il mese a 2 cifre e (.+) per il titolo. Nell’URL di destinazione, usiamo solo $3 (il titolo), scartando anno e mese.

Esempio 3: Aggiungere un prefisso di lingua

Vuoi reindirizzare le pagine italiane verso un sotto-percorso con prefisso lingua:

Source URL: ^/(chi-siamo|servizi|contatti|portfolio)/?$
Target URL: /it/$1/

Questo redirect usa l’operatore pipe (|) per definire alternative. Corrisponde a /chi-siamo/, /servizi/, /contatti/ o /portfolio/ e li reindirizza ai corrispettivi sotto /it/.

Esempio 4: Normalizzare gli URL con e senza slash finale

Vuoi assicurarti che tutti gli URL senza trailing slash vengano reindirizzati alla versione con slash:

Source URL: ^/(.+[^/])$
Target URL: /$1/

Il pattern [^/] corrisponde a qualsiasi carattere che non sia uno slash. Quindi, ^/(.+[^/])$ cattura gli URL che non terminano con slash e li reindirizza alla versione con slash finale.

Esempio 5: Redirect da parametri di query a URL puliti

Il vecchio sito usava URL con parametri come /?page_id=123 e vuoi reindirizzarli agli URL leggibili di WordPress:

Source URL: ^/?page_id=42$
Target URL: /chi-siamo/

Nota il backslash prima del punto interrogativo (?): senza escape, il ? verrebbe interpretato come operatore regex “opzionale”. Per i parametri di query, dovrai creare un redirect per ogni page_id specifico.

Diagnostica tecnica per la verifica dei redirect regex

Esempio 6: Redirect case-insensitive

Se vuoi che il redirect funzioni indipendentemente da maiuscole e minuscole, aggiungi il flag (?i) all’inizio della regex:

Source URL: (?i)^/chi-siamo/?$
Target URL: /chi-siamo/

Con questa regola, /Chi-Siamo/, /CHI-SIAMO/ e /chi-SIAMO/ verranno tutti reindirizzati a /chi-siamo/.

Pattern Avanzati e Tecniche Professionali

Lookahead e Lookbehind

Le regex supportano i lookahead positivi e negativi, che permettono di definire condizioni senza catturare il testo. Ad esempio, per reindirizzare tutti gli URL che contengono “/vecchio/” ma non contengono “/vecchio/eccezione/”:

Screenshot del plugin nella dashboard WordPress

Source URL: ^/vecchio/(?!eccezione/)(.+)$
Target URL: /nuovo/$1

Il (?!eccezione/) è un lookahead negativo: il redirect si attiva solo se il testo dopo /vecchio/ non è “eccezione/”.

Complementa la gestione dei redirect con le nostre guide su Broken Link Checker, Rank Math SEO e SEO per WooCommerce.

Gruppi non catturanti

Se hai bisogno di raggruppare dei caratteri senza catturarli (per non influenzare la numerazione dei riferimenti), usa (?:...):

Source URL: ^/(?:it|en|fr)/(.+)$
Target URL: /$1

Il gruppo (?:it|en|fr) non viene catturato, quindi $1 si riferisce al secondo gruppo (.+). Questa regola rimuove il prefisso di lingua dall’URL.

Debugging e Test delle Regex

Le espressioni regolari possono essere complesse da debuggare. Ecco alcuni suggerimenti per verificare che le tue regex funzionino correttamente:

Strumenti online: usa siti come regex101.com per testare le tue espressioni regolari prima di inserirle in Redirection. Questi strumenti mostrano in tempo reale cosa viene catturato e offrono spiegazioni dettagliate di ogni parte della regex.

Test incrementale: inizia con un pattern semplice e aggiungilo progressivamente. Se la regex completa non funziona, semplificala fino a trovare il punto di errore.

Log di Redirection: dopo aver creato un redirect regex, verifica nei log che venga attivato correttamente. Se il redirect non appare nei log quando visiti l’URL di test, la regex potrebbe non corrispondere.

Attenzione ai falsi positivi: una regex troppo generica potrebbe catturare URL che non dovrebbe. Usa ancoraggi (^ e $) per limitare la corrispondenza e testa con URL che non dovrebbero essere catturati.

Errori Comuni con le Regex in Redirection

Dimenticare l’escape dei caratteri speciali: il punto (.), il punto interrogativo (?), le parentesi e altri caratteri speciali devono essere preceduti da backslash quando vuoi che siano interpretati letteralmente.

Regex troppo generiche: una regex come .* nel Source URL cattura tutti gli URL del sito, inclusa la homepage. Questo può causare redirect loop e rendere il sito inaccessibile. Usa sempre ancoraggi e pattern specifici.

Ordine delle regole: Redirection valuta le regole nell’ordine in cui sono elencate. Se hai una regex generica prima di una specifica, la generica verrà attivata per prima. Posiziona le regole più specifiche in cima alla lista.

Riferimenti non esistenti: se usi $3 nell’URL di destinazione ma la regex ha solo due gruppi di cattura, il risultato sarà un URL malformato. Verifica sempre che il numero di riferimenti corrisponda ai gruppi di cattura.

Prestazioni delle Regex

Le regex sono più costose in termini di risorse rispetto ai redirect con URL esatto. Ogni richiesta al sito deve essere confrontata con tutte le regex attive, il che richiede più tempo di elaborazione. Su siti con centinaia di regex, questo può avere un impatto misurabile sulle prestazioni.

Per minimizzare l’impatto, segui queste best practice: usa regex solo quando necessario (per pattern ripetitivi); per singoli URL, usa redirect con corrispondenza esatta; organizza i redirect in gruppi e disattiva i gruppi non necessari; evita regex eccessivamente complesse con molti backtrack.

Conclusioni

Le espressioni regolari in Redirection sono uno strumento incredibilmente potente per gestire redirect complessi su WordPress. Con la pratica, sarai in grado di creare regole che gestiscono automaticamente centinaia di URL con una singola riga. Ricorda però di testare sempre le tue regex prima di attivarle in produzione e di monitorare i log per verificare che funzionino come previsto.

Se hai bisogno di aiuto con redirect regex complessi o con la gestione avanzata dei redirect, contattaci per una consulenza professionale. Il nostro servizio di posizionamento SEO include la configurazione ottimale dei redirect per massimizzare le prestazioni e il valore SEO del tuo sito.

Migliora il Tuo Sito WordPress

Questa guida fa parte della nostra serie completa su WordPress. Scopri anche le nostre guide su:

  • Elementor – Il page builder più potente per WordPress
  • WP Rocket – Velocizzare WordPress con il miglior plugin di caching
  • SEOPress – Ottimizzare la SEO del tuo sito WordPress
  • UpdraftPlus – Backup automatici e ripristino del sito
#Pattern Matching #Redirect Avanzati #Redirection #Regex #Wordpress