Nuovi reindirizzamenti di espressioni regolari di dominio (Regex) in WordPress

Regex - Espressioni regolari

Nelle ultime settimane abbiamo aiutato un cliente a eseguire una migrazione complessa con WordPress. Il cliente aveva due prodotti, entrambi diventati popolari al punto da dover suddividere le attività, il marchio e il contenuto in domini separati. È davvero un'impresa!

Il loro dominio esistente rimarrà fermo, ma il nuovo dominio avrà tutti i contenuti rispetto a quel prodotto ... da immagini, post, studi di casi, download, moduli, knowledge base, ecc. Abbiamo effettuato una verifica e sottoposto a scansione il sito per assicurarci che non perdere una singola risorsa.

Una volta installato e operativo il nuovo sito, era giunto il momento di premere l'interruttore e metterlo in funzione. Ciò significava che qualsiasi URL dal sito principale che apparteneva a questo prodotto doveva essere reindirizzato al nuovo dominio. Abbiamo mantenuto la maggior parte dei percorsi coerenti tra i siti, quindi la chiave era impostare i reindirizzamenti in modo appropriato.

Reindirizza i plugin in WordPress

Sono disponibili due plugin popolari che fanno un ottimo lavoro nella gestione dei reindirizzamenti con WordPress:

  • Reindirizzamento - forse il miglior plugin sul mercato, con capacità di espressioni regolari e persino categorie per la gestione dei reindirizzamenti.
  • Rankmath SEO - questo plugin SEO leggero è una boccata d'aria fresca e fa il mio elenco di I migliori plugin per WordPress sul mercato. Ha reindirizzamenti come parte della sua offerta e importerà persino i dati di reindirizzamento se esegui la migrazione ad esso.

Se stai utilizzando un motore di hosting WordPress gestito come WPEngine, hanno un modulo per gestire i reindirizzamenti prima che la persona raggiunga il tuo sito ... una caratteristica piuttosto interessante che può ridurre la latenza e il sovraccarico sul tuo hosting.

E, naturalmente, puoi scrivi le regole di reindirizzamento nel tuo file .htaccess sul tuo server WordPress ... ma non lo consiglierei. Sei a un solo errore di sintassi dal rendere il tuo sito inaccessibile!

Come creare un reindirizzamento Regex

Nell'esempio che fornisco sopra, potrebbe sembrare semplice eseguire un reindirizzamento tipico da una sottocartella al nuovo dominio e sottocartella:

Source: /product-a/
Destination: https://newdomain.com/product-a/

C'è un problema con questo, però. Cosa succede se hai distribuito link e campagne che hanno una stringa di query per il monitoraggio della campagna o i referral? Quelle pagine non verranno reindirizzate correttamente. Forse l'URL è:

https://existingdomain.com/product-a/?utm_source=newsletter

Poiché hai scritto una corrispondenza esatta, quell'URL non reindirizzerà da nessuna parte! Quindi, potresti essere tentato di renderlo un'espressione regolare e aggiungere un carattere jolly all'URL:

Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/

È abbastanza buono, ma ci sono ancora un paio di problemi. Innanzitutto, corrisponderà a qualsiasi URL con / product-a / in esso e reindirizzarli tutti alla stessa destinazione. Quindi tutti questi percorsi verranno reindirizzati alla stessa destinazione.

https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/

Le espressioni regolari sono un bellissimo strumento, però. Innanzitutto, puoi aggiornare la tua fonte per assicurarti che il livello della cartella sia identificato.

Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/

Ciò garantirà che solo il livello della cartella primaria verrà reindirizzato correttamente. Ora per il secondo problema ... come farai a ottenere le informazioni sulla stringa di query acquisite sul nuovo sito se il tuo reindirizzamento non le include? Bene, le espressioni regolari hanno anche un'ottima soluzione per questo:

Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1

Le informazioni sui caratteri jolly vengono effettivamente acquisite e aggiunte alla destinazione utilizzando la variabile. Così…

https://existingdomain.com/product-a/?utm_source=newsletter

Reindirizzerà correttamente a:

https://newdomain.com/product-a/?utm_source=newsletter

Tieni presente che il carattere jolly consentirà anche il reindirizzamento di qualsiasi sottocartella, quindi anche questo sarà abilitato:

https://existingdomain.com/product-a/features/?utm_source=newsletter

Reindirizzerà a:

https://newdomain.com/product-a/features/?utm_source=newsletter

Ovviamente, le espressioni regolari possono diventare molto più complesse di così ... ma volevo solo fornire un rapido esempio di come impostare un reindirizzamento regex jolly che passa tutto in modo pulito a un nuovo dominio!

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.