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 la configurazione cron nel file .magento.app.yaml
. L’Adobe consiglia di aggiornare e testare i file di configurazione YAML in un ambiente di integrazione, quindi di distribuire le modifiche nell’ambiente di staging. Se le modifiche non vengono applicate ai siti di gestione temporanea dopo la ridistribuzione e non sono presenti messaggi di errore correlati nel registro, è NECESSARIO Inviare un ticket di supporto Adobe Commerce che descriva le modifiche di configurazione tentate. Includi nel ticket tutti i file di configurazione YAML aggiornati.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 to
Obbligatorio, percorso assoluto parziale, URL con protocollo e host o pattern che specifica la destinazione di destinazione per la regola di reindirizzamento. regexp
Facoltativo, il valore predefinito è false
. Specifica se la chiave del percorso deve essere interpretata come espressione regolare PCRE.prefix
Specifica 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_suffix
Determina se il suffisso viene riportato con il reindirizzamento. Impostazione predefinita: true
. Questo valore non è supportato se la chiaveregexp
ètrue
o* se la chiaveprefix
èfalse
.code
Specifica il codice di stato HTTP. I codici di stato validi sono 301
(spostati definitivamente),302
,307
e308
. Impostazione predefinita:302
.expires
Facoltativo, 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
/from
al percorsohttp://{default}/to
. -
Reindirizza le richieste che corrispondono al pattern
/from/another/path
ahttps://{default}/to/another/path
. -
Se si modifica la proprietà
prefix
infalse
, le richieste che corrispondono al pattern/from
attivano un reindirizzamento, ma le richieste che corrispondono al pattern/from/another/path
no.
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/suffix
al percorsohttps://{default}/to
. -
Se si modifica la proprietà
append_suffix
intrue
, le richieste corrispondenti a/from/path/suffix
verranno 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.