Reindirizzamenti
La gestione delle regole di reindirizzamento è un requisito comune per le applicazioni web, soprattutto nei casi in cui non si desidera perdere i collegamenti in entrata che sono stati modificati o rimossi nel tempo.
Di seguito viene illustrato come gestire le regole di reindirizzamento nei progetti Adobe Commerce su infrastrutture cloud utilizzando il file di configurazione routes.yaml. Se i metodi di reindirizzamento descritti in questo argomento non funzionano, puoi utilizzare le intestazioni di memorizzazione in cache per eseguire la stessa operazione.
{default} rappresenta il dominio predefinito configurato per il sito. Se il progetto ha più domini, utilizzare il segnaposto {all} per configurare il routing per il dominio predefinito e per tutti gli alias. Vedere Configurare le route.Aggiornamenti agli ambienti Pro
routes.yaml e le configurazioni cron nel file .magento.app.yaml. Adobe consiglia di apportare e convalidare prima tutte le modifiche di configurazione YAML in un ambiente di integrazione e quindi distribuirle nell’ambiente di staging.routes.yaml può causare problemi di prestazioni. Se il file routes.yaml è di almeno 32 KB, scarica i reindirizzamenti non regex e riscrive in Fastly. Vedi Offload dei reindirizzamenti non regex a Fastly invece di Nginx (route) nel Centro assistenza Adobe Commerce.Reindirizzamenti di intero percorso
Utilizzando i reindirizzamenti a route intera, è possibile definire route semplici utilizzando il file routes.yaml. Ad esempio, è possibile reindirizzare da un dominio apex a un sottodominio www come segue:
http://{default}/:
type: redirect
to: http://www.{default}/
Reindirizzamenti a route parziale
Nel file .magento/routes.yaml è possibile aggiungere regole di reindirizzamento parziali alle route esistenti in base alla corrispondenza dei criteri:
http://{default}/:
redirects:
expires: 1d
paths:
"/from": { to: "http://example.com/" }
"/regexp/(.*)/matching": { to: "http://example.com/$1", regexp: true }
I reindirizzamenti parziali funzionano con qualsiasi tipo di percorso, compresi quelli serviti direttamente dall’applicazione.
Sono disponibili due chiavi in redirects:
-
expires - Facoltativo, specifica il tempo necessario per memorizzare nella cache il reindirizzamento nel browser. Esempi di valori validi includono
3600s,1d,2w,3m. -
percorsi: una o più coppie chiave-valore che specificano la configurazione per le regole di reindirizzamento parziale.
Per ogni regola di reindirizzamento, la chiave è un’espressione per filtrare i percorsi di richiesta per il reindirizzamento. Il valore è un oggetto che specifica la destinazione di destinazione per il reindirizzamento e le opzioni per l’elaborazione del reindirizzamento.
L'oggetto value ha le seguenti proprietà:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Proprietà Descrizione toObbligatorio, percorso assoluto parziale, URL con protocollo e host o pattern che specifica la destinazione di destinazione per la regola di reindirizzamento. regexpFacoltativo, il valore predefinito è false. Specifica se la chiave del percorso deve essere interpretata come espressione regolare PCRE.prefixSpecifica se il reindirizzamento si applica sia al percorso che a tutti i relativi elementi secondari o solo al percorso stesso. Impostazione predefinita: true. Valore non supportato seregexpètrue.append_suffixDetermina se il suffisso viene riportato con il reindirizzamento. Impostazione predefinita: true. Questo valore non è supportato se la chiaveregexpètrueo* se la chiaveprefixèfalse.codeSpecifica il codice di stato HTTP. I codici di stato validi sono 301(spostati definitivamente),302,307e308. Impostazione predefinita:302.expiresFacoltativo, specifica per quanto tempo memorizzare in cache il reindirizzamento nel browser. Il valore predefinito è expires, definito direttamente nella chiaveredirects, ma a questo livello è possibile ottimizzare la scadenza della cache per i singoli reindirizzamenti parziali.
Esempi di reindirizzamenti a route parziale
Negli esempi seguenti viene illustrato come specificare reindirizzamenti a route parziale nel file routes.yaml utilizzando diverse opzioni di configurazione di paths.
Corrispondenza pattern espressione regolare
Utilizza il seguente formato per configurare le richieste di reindirizzamento in base a un’espressione regolare.
http://{default}/:
type: upstream
redirects:
paths:
"/regexp/(.*)/match": { to: "http://example.com/$1", regexp: true }
Questa configurazione filtra i percorsi delle richieste rispetto a un'espressione regolare e reindirizza le richieste corrispondenti a https://example.com. Ad esempio, una richiesta a https://example.com/regexp/a/b/c/match viene reindirizzata a https://example.com/a/b/c.
Corrispondenza pattern prefisso
Utilizza il seguente formato per configurare le richieste di reindirizzamento per i percorsi che iniziano con un pattern di prefisso specificato.
http://{default}/:
type: upstream
redirects:
paths:
"/from": { to: "https://{default}/to", prefix: true }
Questa configurazione funziona come segue:
-
Reindirizza le richieste che corrispondono al pattern
/fromal percorsohttp://{default}/to. -
Reindirizza le richieste che corrispondono al pattern
/from/another/pathahttps://{default}/to/another/path. -
Se si modifica la proprietà
prefixinfalse, le richieste che corrispondono al pattern/fromattivano un reindirizzamento, ma le richieste che corrispondono al pattern/from/another/pathno.
Corrispondenza pattern suffisso
Utilizza il seguente formato per configurare le richieste di reindirizzamento che aggiungono il suffisso di percorso dalla richiesta alla destinazione di destinazione:
http://{default}/:
type: upstream
redirects:
paths: "/from": { to: "https://{default}/to", append_suffix: false }
Questa configurazione funziona come segue:
-
Reindirizza le richieste che corrispondono al pattern
/from/path/suffixal percorsohttps://{default}/to. -
Se si modifica la proprietà
append_suffixintrue, le richieste corrispondenti a/from/path/suffixverranno reindirizzate al percorsohttps://{default}/to/path/suffix.
Configurazione della cache specifica per percorso
Utilizza il seguente formato per personalizzare il tempo per memorizzare in cache un reindirizzamento da un percorso specifico:
http://{default}/:
type: upstream
redirects:
expires: 1d
paths:
"/from": { to: "https://example.com/" }
"/here": { to: "https://example.com/there", expires: "2w" }
Questa configurazione funziona come segue:
-
I reindirizzamenti dal primo percorso (
/from) vengono memorizzati nella cache per un giorno. -
I reindirizzamenti dal secondo percorso (
/here) vengono memorizzati nella cache per due settimane.