我想重定向到任何给定的URL。我正在尝试:
路线:
get 'track/*redirect_url', to: 'tracker#track'
控制器:
redirect_to params[:redirect_url]
但是,当我访问跟踪器网址时-我收到奇怪的重定向:
http://localhost:3000/http://google.com/search=xyz
=> http:/google.com/search=xyz
(缺少一个斜线!)
http://localhost:3000/http://google.com
=> http:/google
(斜杠+ .com缺失”
Rails显然以某种方式转换了URL部分,但是由于我对此没有控制权-我需要一种方法来对其进行修复。
任何想法如何?
答案 0 :(得分:1)
之所以发生这种情况,是因为Rails试图将其解析为单个URL并由于转义而失败(//被解析为“转义的/”)。
.com
也会发生什么-由rails解析为格式(例如.html或.json)。
我建议您使用URL编码和查询字符串参数,例如:
http://localhost:3000/track/?redirect_url=https%3A%2F%2Fgoogle.com