URL Reescritura

URL Reescritura
La URL de que las solicitudes de un cliente se pueden cambiar por completo o patly utilizando las reglas de reescritura de Nginx. Además de dirigir el flujo de las páginas de ejecución de Nginx, el objetivo principal de actualizar una URL es alertar a los clientes de que los servicios que buscan se han movido. Las URL se reescriben utilizando los comandos de retorno y reescribir en Nginx. La misma tarea de reescribir las URL es llevada a cabo por ambas directivas. La directiva de reescritura es más fuerte que la directiva de retorno, ya que puede manejar una reescritura complicada sin la necesidad de analizar las URLs. Examinaremos en esta guía sobre cómo el NGINX usa los comandos de retorno y reescribir para modificar o reescribir la URL.

Se recomienda actualizar la instancia de Nginx actual a la versión más alta porque esta instrucción está optimizada para Nginx versión 1.0.1 y superior. Sin embargo, algunas de las operaciones y sintaxis aún podrían aplicarse a las versiones antes de la mencionada.

Directiva de regreso en Ubuntu 20.04

El comando de devolución fundamental y bien entendido se utiliza para lograr la reescritura de URL. Aunque no emplea las expresiones regulares, puede analizar las variables que se toman de la ruta del bloque de ubicación. Por lo general, la Directiva de retorno se usa para redirigir la URL de solicitud a un lugar diferente. Como resultado, con frecuencia emplea los códigos de estado HTTP como 301 para la redirección continua y 302 para la redirección temporal. Los ejemplos de los casos de uso de la directiva de retorno se muestran en los siguientes fragmentos de código:

Implementación de la Directiva de retorno en la configuración del servidor

Al trasladar su sitio web a un nuevo dominio y redirigir todas las URL antiguas al nuevo dominio, la directiva de retorno en el entorno del servidor es bastante útil. Hacer su sitio para redirigir a la versión "www" o la versión "no www" también ayuda a canonicalizar la URL.

La Directiva de retorno en el contexto del servidor anterior cambia la URL que está destinada al www.urlinux.COM Sitio, que es el antiguo dominio del www.urlinux.Sitio com que es el nuevo dominio. Cuando Nginx ve una URL que contiene el www.urlinux.comunicarse Sitio, detiene inmediatamente el procesamiento de la página y proporciona al cliente un código de respuesta 301 y reconstruye la URL. El $ esquema y $ solicitud URI son las dos variables que se utilizan en la Directiva de retorno. El $ solicitud URI variable incluye el URI completo con cualquier parámetro. Y el $ esquema Se emplea variable para definir el esquema de URL (HTTP o HTTPS). Al reescribir la URL, tenga en cuenta que ambas variables recuperan esta información de la URL de entrada.

Implementación de la Directiva de retorno en la configuración de ubicación

En algunas circunstancias, es preferible reenviar las páginas al tratar con dominios. Puede redirigir las páginas a una ubicación diferente utilizando la directiva de retorno que se encuentra dentro del bloque de ubicación.

Cuando una URL de solicitud coincide exactamente con el patrón /artículos /muestras-nginx en el ejemplo, Nginx redirige la solicitud al nuevo https: // Linux.com/nginx/context-nginx/ DIRECCIÓN. También puede cambiar la posición de todo para un camino determinado. El siguiente ejemplo demuestra cómo redirigir cualquier página que esté marcada como "/muestras" para https: // Linux.com/idiomas.

Reescribir directiva en Ubuntu 20.04

La capacidad interna del servidor web para reescribir las URL sin revelar el método central a la máquina del cliente se logra a través de la directiva de reescritura. Utiliza las expresiones regulares y se ajusta a su sintaxis. El marcador de posición de reemplazo reemplaza la URL coincidente. El marcador de posición Regex permite que se utilicen las expresiones regulares. Y el indicador permite cambiar el flujo de ejecución. Las banderas se rompen, permanecen, redirigen y se utilizan actualmente en las directivas de reescritura.

Los detalles de la sintaxis se dan en lo siguiente:

  • Regex: la expresión regular construida utilizando el PCRE que se aplica a la URL de las solicitudes entrantes.
  • Reemplazo-URL: si la URL solicitada coincide con la expresión regular, la URL solicitada se cambia utilizando la cadena de reemplazo.
  • Bandera: si el comando de reescritura debe procesarse más depende del valor del indicador.

Tenga en cuenta que solo los códigos 301 o 302 pueden ser devueltos por la Directiva de reescritura. Después de la directiva de reescritura, se debe incluir una directiva de devolución explícitamente si desea devolver algún código adicional.

Implementación de la Directiva de reescritura para la página estática

Tome el caso donde desea cambiar la URL de una página, como https: // Linux.com/nginx-samples a https: // Linux.com/otra.html. En el siguiente bloque de ubicación, se proporciona una directiva de reescritura para realizar la misma tarea.

De acuerdo con el comando de ubicación, ubicación = /nginx-samples, solo las URL con el prefijo exacto /nginx-samples coinciden con el bloque de ubicación. La URL solicitante es examinada por Nginx para las muestras "/nginx?Patrón de $ ". Los significados específicos de los personajes "^" ",?", Y" $ "se emplean para definir el patrón. La cadena que debe coincidir comienza con "^". El final de la cadena a combinar se indica mediante el símbolo "$". El signo del modificador no grisero es "?".

Una vez que se encuentra una coincidencia, un modificador no verde deja de buscar patrones. Si el URI solicitado coincide con el patrón, el "Otro Page.html "se sustituye. La reescritura también termina porque la restricción de reescritura termina con un descanso. Pero la solicitud modificada no se reenvía a una ubicación diferente.

Implementación de la Directiva de reescritura para la página dinámica

Ahora, considere una página dinámica donde la parte dinámica es id = 11: https: // www.Linux.com/Linux-User.php?id = 11 (uid). Si usa la forma más reciente de reescribir las URL, necesita 10 directivas de reescritura para cada uno de sus 10 usuarios. En su lugar, es factible extraer los componentes de la URL en variables y utilizar esas variables para crear un solo comando de reescritura que maneja todas las páginas dinámicas.

Con el comando de ubicación "ubicación = /usux-user", se instruye a Nginx para buscar la directiva de ubicación con una URL que tiene el prefijo " /Linux-User" exactamente en ella. Nginx escanea la URL solicitada para el "User Linux/([0-9]+)/?Patrón de $ ". El rango de caracteres en la expresión regular cuadrada entre paréntesis "^[0-9]+" está entre 0 y 9. Un carácter o caracteres coincidentes se indican con el símbolo "+". En ausencia del signo "+", la expresión regular identifica solo los caracteres individuales como 5 u 8, pero no 25 o 44. La paréntesis de la expresión regular () marca la referencia de retroceso. Esta referencia de retroceso se muestra por el "$ 1" en el "User Linux.php?ID = URL de sustitución de $ 1 ".

Conclusión

Las directivas de reescritura o devolución ahora se pueden usar para reescribir las URL. Los ejemplos de reescritura dados en este curso son sencillos para comprender. Como se muestra en los ejemplos, la Directiva de retorno se utiliza para informar al navegador y a los rastreadores de motores de búsqueda de la ubicación de la página. Mientras que la Directiva de Reescritura se puede utilizar para abstraer la operación de reescritura de URL sin hacer que el navegador consciente de lo que está sucediendo detrás de escena.