Referência de exemplo de redirecionamentos e regravações - AWS Amplify Hospedagem

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Referência de exemplo de redirecionamentos e regravações

Esta seção inclui exemplos de código para vários cenários comuns de redirecionamento. É possível usar esses exemplos para entender a sintaxe para criar seus próprios redirecionamentos e regravações.

nota

A correspondência de domínio do endereço original não diferencia maiúsculas de minúsculas.

Redirecionamentos e regravações simples

É possível usar o código de exemplo a seguir para redirecionar permanentemente uma página específica a um novo endereço.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/original.html

/destination.html

permanent redirect (301)

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

É possível usar o código de exemplo a seguir para redirecionar qualquer caminho em uma pasta para o mesmo caminho em uma pasta diferente.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/docs/<*>

/documents/<*>

permanent redirect (301)

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

É possível usar o código de exemplo a seguir para redirecionar todo o tráfego para index.html como uma regravação. Nesse cenário, a regravação faz parecer para o usuário que ele está no endereço original.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/<*>

/index.html

rewrite (200)

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

É possível usar o código de exemplo a seguir para usar uma regravação para alterar o subdomínio que é exibido ao usuário.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

https://mydomain.com

https://www.mydomain.com

rewrite (200)

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

É possível usar o código de exemplo a seguir para redirecionar para um domínio diferente com um prefixo de caminho.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

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}]

É possível usar o código de exemplo a seguir para redirecionar caminhos em uma pasta que não podem ser encontrados para uma página 404 personalizada.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/<*>

/404.html

not found (404)

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

Redireciona para aplicativos de única página web (SPA)

A maioria das estruturas de SPA oferecem suporte a history.pushState() de HTML5 para alterar o local do navegador sem iniciar uma solicitação de servidor. Isso funciona para usuários que começam a jornada a partir da raiz (ou /index.html), mas falha para usuários que navegam diretamente para qualquer outra página.

O exemplo a seguir usa expressões regulares para configurar uma reescrita 200 para todos os arquivos em index.html, exceto para as extensões de arquivo especificadas na expressão regular.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

</^[^.]+$|\.(?!(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}]

Regravação de proxy reverso

O exemplo a seguir usa uma regravação para criar um proxy de conteúdo de outro local para que pareça ao usuário que o domínio não foi alterado.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/images/<*>

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

rewrite (200)

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

Barras finais e URLs limpos

Para criar estruturas limpas de URL, como about, em vez de about.html, geradores de site estático, como Hugo, geram diretórios para páginas com um index.html (/about/index.html). O Amplify cria automaticamente URLs limpos adicionando uma barra final quando necessário. A tabela a seguir destaca diferentes cenários:

Entradas do usuário no navegador URL na barra de endereços Documento fornecido

/about

/about

/about.html

/about (when about.html returns 404)

/about/

/about/index.html

/about/

/about/

/about/index.html

Espaços reservados

É possível usar o código de exemplo a seguir para redirecionar caminhos em uma estrutura de pastas a uma estrutura correspondente em outra pasta.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/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}]

Strings de consulta e parâmetros de caminho

É possível usar o código de exemplo a seguir para redirecionar um caminho para uma pasta com um nome que corresponde ao valor de um elemento de string de consulta no endereço original:

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/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

O Amplify encaminha todos os parâmetros da sequência de caracteres de consulta para o caminho de destino para redirecionamentos 301 e 302. No entanto, se o endereço original incluir uma sequência de caracteres de consulta definida com um valor específico, conforme demonstrado neste exemplo, o Amplify não encaminhará os parâmetros de consulta. Nesse caso, o redirecionamento se aplica somente às solicitações para o endereço de destino com o valor de consulta id especificado.

É possível usar o código de exemplo a seguir para redirecionar todos os caminhos que não podem ser encontrados em determinado nível de uma estrutura de pastas para index.html em uma pasta especificada.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/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}]

Redirecionamentos baseados em região

É possível usar o código de exemplo a seguir para redirecionar solicitações com base na região.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/documents

/documents/us/

temporary redirect (302)

<US>

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

Uso de expressões curinga em redirecionamentos e regravações

É possível usar a expressão curinga, <*>, no endereço original para redirecionar ou regravar. Você deve colocar a expressão no final do endereço original, e ela deve ser exclusiva. O Amplify ignora os endereços originais que incluam mais de uma expressão curinga ou os usa em um posicionamento diferente.

Veja a seguir um exemplo de um redirecionamento válido com uma expressão curinga.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/docs/<*>

/documents/<*>

permanent redirect (301)

Os dois exemplos a seguir demonstram redirecionamentos inválidos com expressões curinga.

Endereço original Endereço de destino Tipo de redirecionamento Código do país

/docs/<*>/content

/documents/<*>/content

permanent redirect (301)

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

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

permanent redirect (301)