Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

258
Views
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)) } })
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

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'); }
about 4 years ago · Juan Pablo Isaza Report

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

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!