[英]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你会看到specyfic回参考内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.