【问题标题】:IIS URL rewrite has a problem with non-English charactersIIS URL 重写存在非英文字符的问题
【发布时间】:2021-03-01 03:30:13
【问题描述】:

我在我的 asp.net 项目的 web.config 中设置了 IIS URL 重写。 它适用于标题查询字符串中的英文字母,但它不适用于非英文字母,即使我将标题更改为 {UrlEncode:{R:2}}

<rule name="Rewrite to Page.aspx">
      <match url="^page/([0-9]+)/([_0-9a-z-]+)"/>
      <action type="Rewrite" url="page.aspx?id={R:1}&amp;title={R:2}"/>
</rule>

例如:

http://localhost:53849/page/1/english-character 工作正常,但http://localhost:53849/page/1/ตรวจสอบ 不工作并抛出以下错误:

HTTP 错误 404.0 - 未找到

【问题讨论】:

  • 请花时间学习正则表达式。你写了一个只适用于英文字符的表达式,所以毫无疑问它会坏掉。
  • 谢谢@LexLi 我将 ([0-9a-z-]+) 更改为 ([^A-Za-z0-9]+) 并且现在可以工作了

标签: iis url-rewriting


【解决方案1】:

你也可以改成

^page/([0-9]+)/(.*)

顺便说一句,如果问题已经解决,请将解决方案作为答案发布并标记,以便帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2012-06-18
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多