我们有一种情况,我们让我们的营销网站的超级用户能够直接搜索带有 slug 的产品。他们点击的链接重定向到该产品的实际页面。这适用于英语语言环境。但是,在 slug 已本地化的非英语语言环境中,重定向会导致所有重音字符被替换为“?”。
例如,http ://domain.xx.be/fr/category /catégorie/product_name重定向到http://domain.xx.be/fr/category/cat?gorie/product_name,它会给出 404。
有没有办法在使用 play mvc Results api 时保留重定向 url 中的重音字符。
PS 我们将绝对重定向 url 作为来自不同 API 的 json 响应的一部分。
编辑:为清楚起见添加一些代码
def getProductPage(slug: String, locale: String) = AsyncAction {
flow {
val response = gateway.getPathBySlug(slug, locale).!
val url = (response.json \ "url").as[String]
MovedPermanently(url)
} recover {
case ex => throw ex
}
}