繁体   English   中英

带有重写映射的重写规则

[英]Rewrite Rule with Rewrite Map

我在使用IIS中的重写映射的重写规则的创建过程中遇到了问题。 目标是将/Japan/test.html/Chile/test.html类的请求重写为jp/en/simple-testcl/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM