Esempio di riferimento per reindirizzare e riscrivere - AWS Amplify Ospitare

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à.

Esempio di riferimento per reindirizzare e riscrivere

Questa sezione include codice di esempio per una varietà di scenari di reindirizzamento comuni. È possibile utilizzare questi esempi per comprendere la sintassi utilizzata per creare reindirizzamenti e riscritture personalizzati.

Nota

La corrispondenza tra indirizzi e domini originali non fa distinzione tra maiuscole e minuscole.

Reindirizzamenti e riscritture semplici

È possibile utilizzare il seguente codice di esempio per reindirizzare definitivamente una pagina specifica a un nuovo indirizzo.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/original.html

/destination.html

permanent redirect (301)

JSON [{"source": "/original.html", "status": "301", "target": "/destination.html", "condition": null}]

Il seguente codice di esempio può essere utilizzato anche per reindirizzare un percorso di una cartella allo stesso percorso con una cartella diversa.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/docs/<*>

/documents/<*>

permanent redirect (301)

JSON [{"source": "/docs/<*>", "status": "301", "target": "/documents/<*>", "condition": null}]

Il seguente codice di esempio serve per reindirizzare tutto il traffico su index.html, come riscrittura. In questo scenario, la riscrittura fa credere all'utente di aver raggiunto l'indirizzo originale.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/<*>

/index.html

rewrite (200)

JSON [{"source": "/<*>", "status": "200", "target": "/index.html", "condition": null}]

Il seguente codice di esempio serve per l'utilizzo di una riscrittura, utile a modificare il sottodominio visualizzato all'utente.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

https://mydomain.com

https://www.mydomain.com

rewrite (200)

JSON [{"source": "https://mydomain.com", "status": "200", "target": "https://www.mydomain.com", "condition": null}]

È possibile utilizzare il seguente codice di esempio per reindirizzare a un dominio diverso con un prefisso di percorso.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

https://mydomain.com

https://www.mydomain.com/documents

temporary redirect (302)

JSON [{"source": "https://mydomain.com", "status": "302", "target": "https://www.mydomain.com/documents/", "condition": null}]

Puoi utilizzare il seguente codice di esempio per reindirizzare i percorsi all'interno di una cartella non trovata verso una pagina 404 personalizzata.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/<*>

/404.html

not found (404)

JSON [{"source": "/<*>", "status": "404", "target": "/404.html", "condition": null}]

Reindirizzamenti per app Web a pagina singola () SPA

La maggior parte dei SPA framework supporta la cronologia. HTML5 pushState() per modificare la posizione del browser senza avviare una richiesta al server. Funziona per gli utenti che iniziano il proprio percorso dalla root (o da /index.html), ma fallisce per gli utenti che accedono direttamente a qualsiasi altra pagina.

L'esempio seguente utilizza le espressioni regolari per impostare una riscrittura di 200 per tutti i file in index.html, ad eccezione delle estensioni di file specificate nell'espressione regolare.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>

/index.html

200

JSON [{"source": "</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>", "status": "200", "target": "/index.html", "condition": null}]

Riscrittura inversa del proxy

L'esempio seguente utilizza una riscrittura del contenuto proxy da un'altra posizione in modo che all'utente appaia che il dominio non è cambiato.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/images/<*>

https://images.otherdomain.com/<*>

rewrite (200)

JSON [{"source": "/images/<*>", "status": "200", "target": "https://images.otherdomain.com/<*>", "condition": null}]

Barre finali e pulire URLs

Per creare URL strutture pulite come about anziché about.html, i generatori di siti statici come Hugo generano directory per le pagine con index.html (/about/index.html). Amplify crea automaticamente URLs clean aggiungendo una barra finale quando necessario. La tabella seguente illustra diversi scenari:

Input utente dal browser URLnella barra degli indirizzi Documento fornito

/about

/about

/about.html

/about (when about.html returns 404)

/about/

/about/index.html

/about/

/about/

/about/index.html

Placeholder

È possibile utilizzare il seguente codice di esempio per reindirizzare percorsi in una struttura di cartelle a una struttura corrispondente in un'altra cartella.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/docs/<year>/<month>/<date>/<itemid>

/documents/<year>/<month>/<date>/<itemid>

permanent redirect (301)

JSON [{"source": "/docs/<year>/<month>/<date>/<itemid>", "status": "301", "target": "/documents/<year>/<month>/<date>/<itemid>", "condition": null}]

Stringhe di query e parametri del percorso

Puoi utilizzare il seguente codice di esempio per reindirizzare un percorso a una cartella con un nome che corrisponda al valore dell'elemento stringa di query nell'indirizzo originale:

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/docs?id=<my-blog-id-value

/documents/<my-blog-post-id-value>

permanent redirect (301)

JSON [{"source": "/docs?id=<my-blog-id-value>", "status": "301", "target": "/documents/<my-blog-id-value>", "condition": null}]

Nota

Amplify inoltra tutti i parametri della stringa di query al percorso di destinazione per i reindirizzamenti 301 e 302. Tuttavia, se l'indirizzo originale include una stringa di query impostata su un valore specifico, come dimostrato in questo esempio, Amplify non inoltra i parametri di query. In questo caso, il reindirizzamento si applica solo alle richieste all'indirizzo di destinazione con il valore di query specificato. id

È possibile utilizzare il codice di esempio seguente per reindirizzare tutti i percorsi che non possono essere trovati a un determinato livello di una struttura di cartelle a index.html in una cartella specificata.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/documents/<folder>/<child-folder>/<grand-child-folder>

/documents/index.html

not found (404)

JSON [{"source": "/documents/<x>/<y>/<z>", "status": "404", "target": "/documents/index.html", "condition": null}]

Reindirizzamenti basati sulla regione

È possibile utilizzare il seguente codice di esempio per reindirizzare le richieste in base alla regione.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/documents

/documents/us/

temporary redirect (302)

<US>

JSON [{"source": "/documents", "status": "302", "target": "/documents/us/", "condition": "<US>"}]

Utilizzo di espressioni con caratteri jolly nei reindirizzamenti e nelle riscritture

È possibile utilizzare l'espressione con caratteri jolly<*>, nell'indirizzo originale per un reindirizzamento o una riscrittura. È necessario inserire l'espressione alla fine dell'indirizzo originale e deve essere univoca. Amplify ignora gli indirizzi originali che includono più di un'espressione con caratteri jolly o li utilizza in una posizione diversa.

Di seguito è riportato un esempio di reindirizzamento valido con un'espressione con caratteri jolly.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/docs/<*>

/documents/<*>

permanent redirect (301)

I due esempi seguenti mostrano reindirizzamenti non validi con espressioni jolly.

Indirizzo originale Indirizzo di destinazione Tipo di reindirizzamento Codice del paese

/docs/<*>/content

/documents/<*>/content

permanent redirect (301)

/docs/<*>/content/<*>

/documents/<*>/content/<*>

permanent redirect (301)