Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasformazioni per le regole degli ascoltatori
Una trasformazione delle regole riscrive le richieste in entrata prima che vengano indirizzate alle destinazioni. La riscrittura di una richiesta non modifica la decisione di routing presa durante la valutazione delle condizioni della regola. Ciò è utile quando i client inviano un URL o un'intestazione host diversi da quelli previsti dai destinatari.
L'utilizzo delle trasformazioni delle regole trasferisce la responsabilità della modifica di percorsi, stringhe di query e intestazioni degli host al sistema di bilanciamento del carico. Ciò elimina la necessità di aggiungere una logica di modifica personalizzata al codice dell'applicazione o di affidarsi a un proxy di terze parti per eseguire le modifiche.
Gli Application Load Balancer supportano le seguenti trasformazioni per le regole dei listener.
Trasformazioni
host-header-rewrite-
Riscrive l'intestazione dell'host nella richiesta. La trasformazione utilizza un'espressione regolare per corrispondere a un pattern nell'intestazione dell'host e quindi la sostituisce con una stringa sostitutiva.
url-rewrite-
Riscrive l'URL della richiesta. La trasformazione utilizza un'espressione regolare per corrispondere a un modello nell'URL della richiesta e quindi la sostituisce con una stringa sostitutiva.
Nozioni di base sulla trasformazione
-
Puoi aggiungere una trasformazione di riscrittura dell'intestazione dell'host e una trasformazione di riscrittura dell'URL per regola.
-
Non è possibile aggiungere una trasformazione a una regola predefinita.
-
Se non c'è alcuna corrispondenza tra i modelli, la richiesta originale viene inviata alla destinazione.
-
Se c'è una corrispondenza tra i modelli ma la trasformazione fallisce, restituiamo un errore HTTP 500.
Trasformazioni di riscrittura dell'intestazione dell'host
È possibile modificare il nome di dominio specificato nell'intestazione dell'host.
Esempio di trasformazione dell'intestazione dell'host
È possibile specificare una trasformazione quando si crea o si modifica una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. Di seguito è riportato un esempio di trasformazione dell'intestazione dell'host. Trasforma l'intestazione dell'host in un endpoint interno.
[ { "Type": "host-header-rewrite", "HostHeaderRewriteConfig": { "Rewrites": [ { "Regex": "^mywebsite-(.+).com$", "Replace": "internal.dev.$1.myweb.com" } ] } } ]
Ad esempio, questa trasformazione riscrive l'intestazione dell'host come. https://mywebsite-example.com/project-a https://internal.dev.example.myweb.com/project-a
Trasformazioni di riscrittura degli URL
È possibile modificare il percorso o la stringa di query dell'URL. Riscrivendo l'URL a livello di load balancer, il frontend URLs può rimanere coerente per utenti e motori di ricerca anche se i servizi di backend cambiano. Puoi anche semplificare stringhe di query URL complesse per facilitarne la digitazione da parte dei clienti.
Tieni presente che non puoi modificare il protocollo o la porta dell'URL, ma solo il percorso e la stringa di query.
Esempio di trasformazione di riscrittura dell'URL
È possibile specificare una trasformazione quando si crea o si modifica una regola. Per ulteriori informazioni consulta i comandi create-rule e modify-rule. Di seguito è riportato un esempio di trasformazione di riscrittura di un URL. Trasforma la struttura della directory in una stringa di query.
[ { "Type": "url-rewrite", "UrlRewriteConfig": { "Rewrites": [ { "Regex": "^/dp/([A-Za-z0-9]+)/?$", "Replace": "/product.php?id=$1" } ] } } ]
Ad esempio, questa trasformazione riscrive l'URL https://www.example.com/dp/B09G3HRMW della richiesta come. https://www.example.com/product.php?id=B09G3HRMW
Il modo in cui le riscritture degli URL differiscono dai reindirizzamenti degli URL
| Caratteristica | Reindirizzamenti URL | Riscritture degli URL |
|---|---|---|
| Visualizzazione dell'URL | Modifiche nella barra degli indirizzi del browser | Nessuna modifica nella barra degli indirizzi del browser |
| Codici di stato | Utilizza 301 (permanente) o 302 (temporaneo) | Nessuna modifica del codice di stato |
| Processing | Lato browser | Lato server |
| Usi comuni | Modifica del dominio, consolidamento del sito Web, correzione dei collegamenti interrotti | Pulisci URLs per la SEO, nascondi strutture complesse, fornisci una mappatura degli URL legacy |