如何在 iis 中使用特定变量重定向特定 URL

如何在 iis 中使用特定变量重定向特定 URL

我的想法是向我的 iis(版本 7)添加一条规则来重定向此

http://www.mydomain.com/folder/Default.aspx?&variable1=eeee&variable2=aaa

到:

http://www.mydomain.com/folder/Default.aspx?&variable1=ffff&variable2=gggg

但它必须只与这个特定的 url 一起使用,并且所有 url 必须保持相同的内容

我读过这篇文章http://blogs.iis.net/bills/archive/2008/05/31/urlrewrite-module-for-iis7.aspx但适用于模式和所有 url,这是一个特定的 url

谢谢!

答案1

尝试这个:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="MyRule" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="^folder/Default.aspx$" />
          <action 
              type="Redirect" 
              url="folder/Default.aspx?&amp;variable1=ffff&amp;variable2=gggg" 
              appendQueryString="false" 
              redirectType="Found" /> 

          <conditions logicalGrouping="MatchAny">
            <add input="{QUERY_STRING}" 
                 pattern="^&amp;variable1=eeee&amp;variable2=aaa$" />

            <add input="{QUERY_STRING}" 
                 pattern="^variable1=eeee&amp;variable2=aaa$" />
          </conditions>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

redirectType将元素中的属性设置<action>为以下之一:

  • Permanent重定向301 Permanent
  • Found重定向302 Found

这涵盖了查询字符串的可能性:

&variable1=eeee&variable2=aaa - 按照您的示例,以 & 符号开头

或者以 & 符号开头:

variable1=eeee&variable2=aaa

如果您只是想要直接重写而不进行重定向,则将元素更改<action>为:

<action type="Rewrite" 
        url="folder/Default.aspx?&amp;variable1=ffff&amp;variable2=gggg" 
        appendQueryString="false" />

相关内容