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.

Angular Prerender Redireccionando con Barras Adicionales

Estoy utilizando Angular Universal + Prerender. Aquí están los paquetes:

  • “@nguniversal/express-engine”: “^13.0.1”
  • “@angular/core”: “13.0.1”

Renderizo todas mis rutas, tengo algunas.

El problema es que ejecuto npm run prerender y despliego mi aplicación en producción.

Cuando navego a https://myapp.com/products`, debido a los archivos prerenderizados, se agrega una barra diagonal adicional al final de la URL, por lo que la nueva URL eshttps://myapp.com/products/`, y Angular me redirecciona a la URL normal nuevamente `https://myapp.com/products`.

En mi archivo server.ts tengo lo siguiente para redirigir de http a https:

function requireHTTPS(req: any, res: any, next: any) {
    if (!req.secure && req.get('x-forwarded-proto') !== 'https' && process.env.NODE_ENV !== "development") {
        return res.redirect(301, 'https://' + req.get('host') + req.url);
    }
    next();
}

Y lo uso de la siguiente manera (esto no tiene nada que ver con la barra diagonal adicional):

server.use(requireHTTPS);

Y no quiero decirle a Express que no haga redireccionamientos, solo quiero evitar que Prerender agregue una barra diagonal adicional y hacer que Angular redireccione.

Tengo muchos errores con SEO: El canónico apunta a una redirección, redirección 3XX en el sitemap, la página 3XX recibe tráfico orgánico. Además, mi sitio no es SEO-friendly.

Espero que alguien pueda ayudar. Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Problema con Angular Universal + Prerender y la barra adicional en la URL

    Estoy utilizando Angular Universal + Prerender con los siguientes paquetes:

    • ” @nguniversal/express-engine “: “^13.0.1 “
    • ” @angular/core “: ” 13.0.1 “

    He prerrenderizado todas mis rutas y desplegado mi aplicación en producción. Sin embargo, cuando navego hacia una de mis rutas prerrenderizadas en https://myapp.com/products`, se agrega una barra adicional al final de la URL, resultando enhttps://myapp.com/products/`. Esto hace que Angular me redireccione nuevamente a la URL normal, `https://myapp.com/products`.

    En server.ts, tengo el siguiente código para redirigir HTTP a HTTPS:

    function requireHTTPS(req: any, res: any, next: any) {
        if (!req.secure && req.get('x-forwarded-proto') !== 'https' && process.env.NODE_ENV !== "development") {
            return res.redirect(301, 'https://' + req.get('host') + req.url);
        }
        next();
    }
    
    server.use(requireHTTPS);
    

    No quiero deshabilitar las redirecciones en Express, pero quiero evitar que Prerender agregue la barra adicional en la URL y provoque la redirección de Angular.

    Este problema está causando muchos errores de SEO, como el apuntamiento canónico a la redirección, la redirección 3XX en el sitemap y la página 3XX que recibe tráfico orgánico. Como resultado, el SEO de mi sitio no es óptimo.

    Si alguien tiene alguna sugerencia, agradecería mucho la ayuda. Gracias.

Comments are closed.