Iis 7 URL重写语言查询字符串

Iis 7 URL重写语言查询字符串,iis-7,url-rewriting,Iis 7,Url Rewriting,我想为所选语言重新编写查询字符串 我有这个URL:www.example.com/?lang=en,希望它是www.example.com/en 它应该在所有页面上重写。所以www.example.com/contact.aspx?lang=en应该是www.example.com/en/contact.aspx 有一个通用的重写规则吗?我的语法可能有点不正确,但您可能可以这样做: <rewrite> <rules> <rule name="Rewrit

我想为所选语言重新编写查询字符串

我有这个URL:www.example.com/?lang=en,希望它是www.example.com/en

它应该在所有页面上重写。所以www.example.com/contact.aspx?lang=en应该是www.example.com/en/contact.aspx


有一个通用的重写规则吗?

我的语法可能有点不正确,但您可能可以这样做:

<rewrite>
  <rules>
    <rule name="Rewrite Language">
      <match url="/([a-z]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="{R:2}?lang={R:1}" />
    </rule>
  </rules>
</rewrite>


> P>请考虑使用以下内容:

<rewrite>
  <rules>
    <rule name="Rewrite Language">
      <match url="/([a-z]{2})(.*)" />
      <action type="Rewrite" url="{R:2}?lang={R:1}" />
    </rule>
  </rules>
</rewrite>

这一个有效

<rule name="Rewrite Language">
    <match url="([a-z]{2})(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="{R:2}?lang={R:1}" />
</rule>


这似乎不起作用。给我404 with example.com/en/contact.aspxI还没有玩过URL重写,但是动作标签的URL前面不需要一个前导“/”来匹配匹配标签URL中的前导“/”吗?