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/
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/