Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

240
Vistas
Redirect with 301 status code in react js single page application

I've developed a web application in react js and I'm using the client-side routing. I have a few deleted product URLs and I want to redirect users to the product listings URL with HTTP Status code 301 when the user opens any of the deleted product URLs. For Example, I've one product URL www.abc.com/prod-detail/123 and this product is deleted so when the user opens this URL, I want him to redirect to www.abc.com/products with HTTPS status code 301.

I tried to achieve this using the below solution.

Code to redirect the user to the products listings from the product details.

productDetails.js

if(productNotFound){
window.location.href ="/products?redirect=301";
}

I created one proxy server using http-proxy-middleware in the application to filter the above requests (If products contain the redirect=301 param) and pass them to the Node server.

setupProxy.js

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {    
    const filter = function (pathname, req) { 
        if(req.query && req.query.redirect==='301'){
            return true;
        }
        else {
            return false;
        }
    };
   
    const apiProxy = createProxyMiddleware(myfilter, {
        target: "http://localhost:8000/",//Node server
        changeOrigin: false,
        secure: false    
    });    
    app.use('/products',apiProxy);
};

In the Node JS server, I'm filtering the requests having query param as redirect=301 and If I found this type of request I just redirect with the status code 301.

inedx.js (Node)

router.get('/products', function (req, res, next) {
    if(req.query && req.query.redirect==='301'){    
    req.query = null;
    const hostUrl = 'http://' + req.get('host') + req.originalUrl.split('?')[0];
    //res.statusCode=301;
    res.redirect(301, hostUrl);
    }
    else{
        res.redirect(301, 'http://' + req.get('host') + req.originalUrl);
    }
});

The above solution is not working for me. I'm not receiving the request on the Proxy server. I'm not sure this is the correct way or not as I'm new to react js.

Thanks in advance for any assistance or insight.

Please also let me know if there is any other way to achieve this without using server-side routing.

I hope the question makes sense. Any help would be appreciated.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda