• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

154
Vistas
cuando trato de redirigir a la URL decodificada, me redirigirá a myurl.com/myurl en lugar de llevarme a la página

Estoy haciendo un acortador de enlaces. Anteriormente tuve un problema con las URL, pero se solucionó al codificar la URL al colocarla en la base de datos y al redirigirla decodificará la URL y la redirigirá. El problema es que en lugar de redirigirme a https://google.com , me redirige a mypage.com/google.com. Intenté hacer una página de "depuración" cuando simplemente decodificó la URL y la URL está bien, con HTTPS: // y todo. El mayor problema es que todo funciona en localhost pero cuando lo implemento en mi VPS no funciona. Solo funciona la página de depuración que decodifica la URL. Estoy usando express.js y mangosta. Aquí está mi código para redirigir a los usuarios:

 app.get('/:shortUrl', async (req, res) => { const shortUrl = await shorturl.findOne({ short: req.params.shortUrl }) if (shortUrl == null) { res.send('URL not found!') } else { shortUrl.clicks++ shortUrl.save() res.redirect(decodeURIComponent(shortUrl.full)) } })
almost 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede usar el objeto URL incorporado para asegurarse de que la URL de redireccionamiento esté completa y sea válida:

 res.redirect(new URL(decodeURIComponent(shortUrl.full)).toString())

Si no puede crear una URL válida a partir de la entrada, la arrojará, por lo que es mejor envolverla en un intento/captura.

 try { res.redirect(new URL(decodeURIComponent(shortUrl.full)).toString()); } catch (e) { res.send('Invalid URL'); }
almost 3 years ago · Juan Pablo Isaza Denunciar

0

Si la URL no tiene un esquema, en un navegador asume que el esquema es HTTP, pero en las redirecciones HTTP, el dominio parece una ruta con un punto. Si redirige a una ruta, se redirigirá al mismo dominio, lo que explica el comportamiento con google.com .

Intente normalizar la URL o validar que la URL completa incluye el esquema.

https://github.com/sindresorhus/normalize-url

https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_URL

almost 3 years ago · Juan Pablo Isaza Denunciar
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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda