允许在url中重写中文字符

时间:2015-10-08 12:03:29

标签: asp.net url iis url-rewriting web-config

我写了URL重写规则:

<match URL="^([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-‘!@#$%^*()!~`\.&quot;]+)"/>

但我的网址中有一些中文字符,如:

'http://www.ilanbio-international.com/News/4443/中国陕西西安---渭南验室奠基石庆典'

这条规则不支持。 那么如何通过URL重写来支持中文字符呢?

4 个答案:

答案 0 :(得分:3)

只需添加:

<match url="^([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-‘!@#$%^*()!~`\.&quot;\u4e00-\u9fa5]+)"/>

取代这个:

<match URL="^([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-‘!@#$%^*()!~."]+)"/>

然后你的问题就会解决。

答案 1 :(得分:1)

感谢有用的问题和答案!
只是在这里为任何人添加都存在相同的问题,但要寻找Arabic Unicode characters (0600–06FF, 255 characters)的答案,则如下所示:

<match url="^([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-\u0600-\u06FF]+)"/>

答案 2 :(得分:0)

搜索字符here的unicode(如果您不使用简体中文,请在Google上搜索YourLanguage unicode table

如果你想写(这是我链接到的表中的第五个字符),你需要编写\u4E08,其中4E08是unicode。 因此中国陕西西安会转换为\u4E2D\u56FD\u9655\u897F\u897F\u5B89

.htaccess规则使用RegEx进行匹配。

regexr with example

答案 3 :(得分:0)

您必须为URL重写创建自定义提供程序,并将这些中文字符替换为普通字符

参考http://www.iis.net/learn/extensions/url-rewrite-module/developing-a-custom-rewrite-provider-for-url-rewrite-module