es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Traducción al español: Rewrite de URL en Linux Container en Azure App Service para Aplicación Reactjs En Azure App Service, es posible configurar un rewrite de URL en un contenedor Linux para una aplicación Reactjs. El rewrite de URL se utiliza para redirigir o reescribir las solicitudes de URL a rutas específicas de una aplicación web. A continuación, se describen los pasos para realizar esta configuración: 1. Inicie sesión en el portal de Azure y vaya al Azure App Service donde se encuentra alojada la aplicación Reactjs en un contenedor Linux. 2. En la sección Configuración del App Service, seleccione “Rutas y certificados SSL”. 3. En la pestaña “Rutas personalizadas”, haga clic en “Añadir” para agregar una nueva ruta personalizada. 4. En el campo “Ruta virtual”, ingrese el patrón de URL que desea redirigir o reescribir. Por ejemplo, si desea redirigir todas las solicitudes a “/old-url” a “/new-url”, ingrese “/old-url” en este campo. 5. En el campo “Ruta física”, ingrese la ruta dentro del contenedor Linux a la que desea redirigir las solicitudes. Por ejemplo, si desea redirigir las solicitudes de “/old-url” a “index.html” dentro del contenedor Linux, ingrese “/path/to/index.html” en este campo. 6. Haga clic en “Agregar” para guardar la configuración de la ruta personalizada. 7. Asegúrese de que la ruta “/*” esté configurada para enviar todas las solicitudes a la aplicación Reactjs dentro del contenedor Linux. 8. Guarde los cambios y espere a que se apliquen. Una vez configurado, Azure App Service en el contenedor Linux redirigirá o reescribirá las solicitudes de URL según las rutas personalizadas establecidas. Esto permite controlar la forma en que las solicitudes de URL son manejadas y dirigidas dentro de la aplicación Reactjs.

He construido una aplicación de muestra de Reactjs y está implementada en un contenedor de Linux que se ejecuta en Azure App Service. Mi url de App Service es (https://abc.azurewebsites.net) y lo que necesito es que, si algún usuario accede a “/privacy”, se abra la página de App Service pero la barra de direcciones debe tener la url con /privacy adjunto (https://abc.azurewebsites.net/privacy)

Intenté con Azure Front Door

Mi url de Front Door es (https://sample.azurefd.net) y agregué varias reglas, pero aún no puedo lograr mi objetivo. Entonces, para Front Door necesito que, si algún usuario accede a la url de Front Door con “/privacy”, se abra la página de App Service pero la barra de direcciones debe tener la url con /privacy adjunto (https://sample.azurefd.net/privacy)

Si esto funciona a través de App Service o Front Door, funcionará para mí.

No puedo hacer ningún cambio en la aplicación de Reactjs porque es código fuente de terceros y tampoco estoy usando el servidor IIS. Entonces, la única opción es hacer algunos cambios a nivel de Azure, es decir, ya sea en App Service o en Front Door.

Servidor de Node: 16.13.1 (incluye npm 8.1.2)

Consultas
1) Si hay algún método alternativo para lograr esto, por favor avísenme.

2) Por favor, díganme cómo puedo lograr esto.

Gracias de antemano 🙂

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.webserver>
            <rewrite>
                <rules>
                    <rule name="Redirect rquests to default azure websites domain">
                        <match url="/privacy"></match>
                        <action type="Redirect" url="http://abc.azurewebsites.net"></action>
                    </rule>
                </rules>
            </rewrite>
        </system.webserver>
    </configuration>

Imagen

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puedes utilizar reglas de reescritura de URL en Azure App Service para redirigir las URL mientras mantienes la URL de solicitud original intacta en la barra de direcciones.

    A continuación, se muestran los pasos para lograr esto:

    1. Abre el portal de Azure y navega hasta tu App Service.
    2. Bajo el App Service, navega hasta “Configuración > Mapeo de rutas”.
    3. Agrega un nuevo Mapeo de ruta con “Ruta virtual” establecido como “/privacy” y “Ruta física” establecido como “/”, y guárdalo.
    4. Navega hasta “Configuración > Configuración general” de tu App Service y, bajo la sección “Configuración de la aplicación”, agrega una nueva configuración de aplicación con la clave “REACT_APP_BASE_URL” y el valor como la URL de tu App Service (“https://abc.azurewebsites.net”).
    5. Crea un archivo web.config en la raíz de tu aplicación con el siguiente código XML:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.webserver>
        <rewrite>
          <rules>
            <rule name="Rewrite to privacy">
              <match url="^privacy$"></match>
              <action type="Rewrite" url="%{ENV:REACT_APP_BASE_URL}/privacy"></action>
            </rule>
          </rules>
        </rewrite>
      </system.webserver>
    </configuration>
    
    1. Guarda el archivo web.config y reinicia tu App Service.

    Esta configuración enrutará todas las solicitudes a “/privacy” hacia la URL de tu App Service con “/privacy” añadido a ella, mientras mantener la URL de solicitud original intacta en la barra de direcciones.

    Puedes verificar la configuración navegando a https://abc.azurewebsites.net/privacy en tu navegador y confirmar que muestra el mismo contenido que https://abc.azurewebsites.net sin cambiar la URL de la barra de direcciones.

    Nota: Si deseas lograr el mismo resultado con Azure Front Door, puedes agregar una regla de reescritura de URL en Front Door para “/privacy” que redirija a tu URL de App Service con “/privacy” añadido, de forma similar a la configuración anterior.

Comments are closed.