ASP.Net WebForm:寻找了解 IIS 重写规则的指南

ASP.Net WebForm: looking for guideline to understand IIS rewrite rule

i post 一个问题,答案 url 是

此人提供了一个 IIS 重写规则片段,我不清楚其含义。

<rule name="Rewrite language code">
  <match url="^([a-z]+)/([0-9a-z]+).aspx" />
  <action type="Rewrite" url="/{R:2}.aspx?lang={R:1}" />
</rule>

就是不明白这行是什么意思/{R:2}.aspx?lang={R:1}什么是{R:2}和{R:1}

IIS 如何理解 {R:2}.aspx 需要替换为 home.aspx 并且 {R:1} 需要替换为国家代码。导致替换的逻辑是什么。

哪个国家名称应该存储在 {R:2} 模板中,国家代码将存储在 {R:1}

中,这是什么逻辑?

我的请求是,如果有人熟悉这种规则,那么请在这里说明一下。谢谢

match 的搜索模式由两部分组成,由方括号 () 内的模式识别。它相当于 javascript.

中的 regex

([a-z]+)([0-9a-z]+)

重写模块现在可以使用这两个作为 action 部分中的标记来重写 url。因为 2 位语言代码是分配给 {R:1} 的第一个匹配项,第二个是实际页面,因此成为第二个标记 {R:2}.

您可以将其与 string.format 函数的 C# 用法进行比较,其中标记被重载的字符串值替换。

string token = "value";
Label1.Text = string.Format("Replace {0}.", token)

更多信息:

https://blogs.msdn.microsoft.com/chiranth/2014/06/12/url-rewrite-part-2inbound-rules/

http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/

https://besthostingforasp.net/url-rewrite-module-iis/