Referencia de ejemplo de redireccionamientos y reescrituras - AWS Amplify Hospedaje

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Referencia de ejemplo de redireccionamientos y reescrituras

En esta sección se incluye código de ejemplo para una variedad de situaciones de redireccionamiento comunes. Puede usar estos ejemplos a fin de entender la sintaxis necesaria para crear sus propias redirecciones y reescrituras.

nota

La coincidencia de dominios de direcciones originales no distingue entre mayúsculas y minúsculas.

Redireccionamientos y reescrituras sencillos

Puede utilizar el siguiente código de ejemplo para redirigir permanentemente una página específica a una nueva dirección.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/original.html

/destination.html

permanent redirect (301)

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

Puede utilizar el siguiente código de ejemplo para redirigir cualquier ruta en una carpeta a la misma ruta de una carpeta diferente.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/docs/<*>

/documents/<*>

permanent redirect (301)

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

Puede utilizar el siguiente código de ejemplo para redirigir todo el tráfico a index.html como una reescritura. En esta situación, la reescritura hace que aparezca al usuario que ha llegado a la dirección original.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/<*>

/index.html

rewrite (200)

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

Puede utilizar el siguiente código de ejemplo para usar una reescritura para cambiar el subdominio que aparece al usuario.

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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}]

Puede utilizar el siguiente código de ejemplo para redirigir a un dominio diferente con un prefijo de ruta.

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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}]

Puede utilizar el siguiente código de ejemplo para redirigir rutas de una carpeta que no se puede encontrar a una página 404 personalizada.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/<*>

/404.html

not found (404)

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

Redireccionamientos para aplicaciones web de página única (SPA)

La mayoría de los marcos de SPA admiten HTML5 history.pushState() para cambiar la ubicación del navegador sin iniciar una solicitud del servidor. Esto funciona para los usuarios que comienzan su recorrido desde la raíz (o /index.html), pero devuelve un error a los usuarios que van directamente a cualquier otra página.

El ejemplo siguiente utiliza expresiones regulares para configurar una reescritura 200 de todos los archivos en index.html, excepto para las extensiones de archivo concretas especificadas en la expresión regular.

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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}]

Reescritura de proxy inverso

En el siguiente ejemplo se utiliza una reescritura a contenido de proxy desde otra ubicación para que al usuario le parezca que el dominio no ha cambiado.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/images/<*>

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

rewrite (200)

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

Barras finales y direcciones URL limpias

Para crear estructuras de direcciones URL limpias como about en lugar de about.html, los generadores de sitios estáticos, como Hugo, generan directorios de páginas con un index.html (/about/index.html). Amplify crea automáticamente direcciones URL limpias añadiendo una barra diagonal siempre que sea necesario. La tabla siguiente destaca diferentes situaciones:

Entradas de usuario en el navegador Dirección URL en la barra de dirección Documento servido

/about

/about

/about.html

/about (when about.html returns 404)

/about/

/about/index.html

/about/

/about/

/about/index.html

Marcadores de posición

Puede utilizar el siguiente código de ejemplo para redirigir rutas en una estructura de carpetas a una estructura coincidente en otra carpeta.

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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}]

Cadenas de consulta y parámetros de ruta

Puede utilizar el siguiente código de ejemplo para redirigir una ruta a una carpeta con un nombre que coincida con el valor de un elemento de cadena de consulta en la dirección original:

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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

Amplify reenvía todos los parámetros de la cadena de consulta a la ruta de destino para los redireccionamientos 301 y 302. Sin embargo, si la dirección original incluye una cadena de consulta establecida en un valor específico, como se muestra en este ejemplo, Amplify no reenvía los parámetros de la consulta. En este caso, el redireccionamiento solo se aplica a las solicitudes a la dirección de destino con el valor de consulta especificado id.

Puede utilizar el siguiente código de ejemplo para redirigir todas las rutas que no se pueden encontrar en un determinado nivel de una estructura de carpetas a index.html de una carpeta especificada.

Dirección original Dirección de destino Tipo de redireccionamiento Código de 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}]

Redireccionamientos basados en la región

Puede utilizar el siguiente código de ejemplo para redirigir solicitudes según la región.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/documents

/documents/us/

temporary redirect (302)

<US>

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

Uso de expresiones comodín en las redirecciones y reescrituras

Puede utilizar la expresión comodín (<*>) en la dirección original para redirigir o reescribir. Debe colocar la expresión al final de la dirección original, y debe ser única. Amplify ignora las direcciones originales que incluyen más de una expresión comodín o las utiliza en una ubicación diferente.

A continuación, se muestra un ejemplo de un redireccionamiento válido con una expresión comodín.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/docs/<*>

/documents/<*>

permanent redirect (301)

Los dos ejemplos siguientes muestran redireccionamientos no válidos con expresiones comodín.

Dirección original Dirección de destino Tipo de redireccionamiento Código de país

/docs/<*>/content

/documents/<*>/content

permanent redirect (301)

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

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

permanent redirect (301)