IIS URL重写 - 使用动态文件

时间:2015-05-04 11:10:57

标签: mod-rewrite iis-7

我正在使用这个答案https://stackoverflow.com/a/13861795/848513,它非常适合我网站上不再存在的静态文件转发到新文件位置。

但我也有一些需要转发到新位置的动态网址,以下代码似乎不起作用:

使用:

    <rule name="SpecificRedirect50" stopProcessing="true">
      <match url="aboutus.php" />   <!-- static URL -->
      <action type="Redirect" url="/about-us" redirectType="Permanent" />
    </rule>

不起作用:

    <rule name="SpecificRedirect1" stopProcessing="true">
      <match url="topic.php?id=39" />   <!-- dynamic URL-->
      <action type="Redirect" url="/folder/?id=520" redirectType="Permanent" />
    </rule>

尝试访问www.site.com/topic.php?id=39时出现的错误是404 Not Found错误 - 即,它没有被重写脚本过滤。

格式应该是什么?

由于

1 个答案:

答案 0 :(得分:0)

好的,找到答案 - 这种格式有效:

    <rule name="SpecificRedirect1111" stopProcessing="true">
      <match url="^topic\.php$" />
        <conditions>
          <add input="{QUERY_STRING}" pattern="^id=39$" />
        </conditions>
      <action type="Redirect" url="/folder/?id=520" appendQueryString="false"  redirectType="Permanent" />
    </rule>