【发布时间】:2016-03-17 19:41:51
【问题描述】:
如何为带有重音符号的 URL 实现 URL 重定向?我希望在没有重音的情况下重写所有带有重音的潜在 URL 请求。这是针对法语网站上的客户名称的。用户应该输入不带重音的名称,但如果他们不这样做,那么我希望他们以任何方式登陆正确的页面。
示例
用户输入:www.mysite.fr/client/andré ==> 用户被重定向到www.mysite.fr/client/andre
数据库中的资源标识符 (clientName) 存储时不带重音符号。这是我的 RouteConfig.cs :
routes.MapRoute(
name: "ClientDetails",
url: "client/{clientName}",
defaults: new { controller = "Client", action = "ClientDetails" }
我了解removing accents on a string 有多种方法。是的,这将允许我从 Controller 方法中收到的 URL 参数中删除重音符号。但是,我希望保持一致,以便用户始终看到不带重音符号的 URL。因此,如何在整个 Web 应用程序中实现重定向 URL?在 RouteConfig.cs 或 Web.config 中是否有一种简单的方法可以做到这一点?
【问题讨论】:
-
也许您应该首先阻止此类网址? (也不清楚为什么您当前的路由存在重音字符问题)。
-
@MethodMan 不完全是,因为该问题没有解释如何实现重音的 URL 重写。它仅显示如何更改字符串。我错过了最后一步。谢谢
-
@AlexeiLevenkov 如上所述,资源标识符(在数据库中)不允许重音符号。我同意防止带有重音的 URL 是最佳做法。这就是为什么我想将任何带有重音符号的 URL 重写为非重音符号