使用重写映射重写规则
Rewrite Rule with Rewrite Map
我在使用 IIS 中的重写映射创建重写规则时遇到问题。目标是将 /Japan/test.html
或 /Chile/test.html
之类的请求重写为 jp/en/simple-test
和 cl/en/simple-test
.
重写规则如下:
<rule name="Rewrite sites" enabled="true" stopProcessing="true">
<match url="^/(.*)/test.html$" />
<conditions>
<add input="{Sites:{R:1}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}/en/simple-test" appendQueryString="false" />
</rule>
这是我重写的地图:
<rewriteMap name="Sites">
<add key="chile" value="cl" />
<add key="japan" value="jp" />
</rewriteMap>
所以再一次,我想把所有的语言动态翻译成语言代码,重写成language_code/en/simple-test
。我想使用重写地图,因为会有更多的语言。
经过几个小时的测试,我终于能够解决我的问题。在上述条件下,Rewrite Rule
和 Rewrite Map
应该是这样的:
<rule name="Rewrite sites" enabled="true" stopProcessing="true">
<match url="(.*)/test.html$" />
<conditions>
<add input="{Sites:{R:1}}" pattern="(.*)" />
</conditions>
<action type="Rewrite" url="{C:1}/en/simple-test" />
</rule>
<rewriteMap name="Sites">
<add key="chile" value="/cl" />
<add key="japan" value="/jp" />
</rewriteMap>
提示!如果您不知道 {R:0}、{R:1}、{C:0} 或 {C:1} 反向引用中的内容,请创建假重写操作,例如:<action type="Rewrite" url="www.test.com?a={C:1}" />
和 a
param 你会看到特定的反向引用内容。
我在使用 IIS 中的重写映射创建重写规则时遇到问题。目标是将 /Japan/test.html
或 /Chile/test.html
之类的请求重写为 jp/en/simple-test
和 cl/en/simple-test
.
重写规则如下:
<rule name="Rewrite sites" enabled="true" stopProcessing="true">
<match url="^/(.*)/test.html$" />
<conditions>
<add input="{Sites:{R:1}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}/en/simple-test" appendQueryString="false" />
</rule>
这是我重写的地图:
<rewriteMap name="Sites">
<add key="chile" value="cl" />
<add key="japan" value="jp" />
</rewriteMap>
所以再一次,我想把所有的语言动态翻译成语言代码,重写成language_code/en/simple-test
。我想使用重写地图,因为会有更多的语言。
经过几个小时的测试,我终于能够解决我的问题。在上述条件下,Rewrite Rule
和 Rewrite Map
应该是这样的:
<rule name="Rewrite sites" enabled="true" stopProcessing="true">
<match url="(.*)/test.html$" />
<conditions>
<add input="{Sites:{R:1}}" pattern="(.*)" />
</conditions>
<action type="Rewrite" url="{C:1}/en/simple-test" />
</rule>
<rewriteMap name="Sites">
<add key="chile" value="/cl" />
<add key="japan" value="/jp" />
</rewriteMap>
提示!如果您不知道 {R:0}、{R:1}、{C:0} 或 {C:1} 反向引用中的内容,请创建假重写操作,例如:<action type="Rewrite" url="www.test.com?a={C:1}" />
和 a
param 你会看到特定的反向引用内容。