转义分号路由playframework 2.0.2

Posted

技术标签:

【中文标题】转义分号路由playframework 2.0.2【英文标题】:Escape semicolon route playframework 2.0.2 【发布时间】:2012-08-15 09:55:01 【问题描述】:

我想用 playframework 做一个重定向功能。到目前为止,我的路线中有这个

GET     /redirect            com.test.redirect(redirecturl: String?="")

和我的控制器:

public static Result redirect(String redirecturl)  
   return redirect(redirectURL); 

这很好,但是当我传递一个包含分号“;”的网址时出现问题

如果我去

http:localhost:9000/redirect?redirecturl=http://www.google.com;testaftersemicolon

它将我重定向到 google.com,但在我的日志中,redirecturl 仅等于“http://www.google.com”在分号后停止。

有没有办法逃脱它?或者在play里面做一个自定义路由?

【问题讨论】:

【参考方案1】:

您应该能够通过在路由文件中使用自定义正则表达式来转义它。这在the documentation about routing 中有描述。 基本上类似以下的东西应该可以工作:

GET     /redirect/$url<.+>            com.test.redirect(url: String?="")

【讨论】:

以上是关于转义分号路由playframework 2.0.2的主要内容,如果未能解决你的问题,请参考以下文章

playframework,你可以在主机名/子域上路由吗?

带有经典查询分隔符的 PlayFramework 1.x 路由

单元测试 PlayFramework 控制器上的“找不到路由器”

PlayFramework HTTPS 仅在 prod 模式下路由,HTTP 在 dev 模式下

T-SQL 转义select …. like中的特殊字符(百分号)

为什么mysqli_real_escape_string()不会通过转义分号和斜杠来改变我的字符串?