如何仅使用IIS中的特定参数重定向URL

时间:2013-04-02 18:40:58

标签: asp.net iis redirect

我有一个看起来像这样的网址:

www.mywebsite.com/page.aspx?code=1.a

我想通过IIS将此网址重定向到:

www.mywebsite.com/page.aspx?code=1.b

我想通过IIS而不是代码中执行此操作。

我有各种其他网站网址,如下所示:

www.mywebsite.com/page.aspx?code=2
www.mywebsite.com/page.aspx?code=3.a
www.mywebsite.com/page.aspx?code=6.c

我不希望这些受到影响。

感谢。

1 个答案:

答案 0 :(得分:2)

在IIS 7.5中执行此操作的一种简单方法是将Microsoft的 URL重写扩展安装到IIS中。

http://www.iis.net/downloads/microsoft/url-rewrite

安装完成后,您只需添加规则即可从?code=1.a重定向到?code=1.b。在IIS中,您会在网站的URL Rewrite标题下看到名为IIS的新条目。您可以使用那里的编辑器来创建新规则。创建规则后,它将写入您的web.config文件。

web.config文件中,规则应如下所示:

<system.webServer>
    ...
    <rewrite>
        <rules>
            <rule name="Code=1.a redirect" patternSyntax="ExactMatch" 
                  stopProcessing="true">
                <match url="page.aspx" />
                <action type="Redirect" url="page.aspx?code=1.b"
                        appendQueryString="false" redirectType="Permanent" />
                <conditions>
                    <add input="{QUERY_STRING}" pattern="code=1.a" />
                </conditions>
            </rule>
        </rules>
    </rewrite>
    ...
</system.webServer>