IIS 7.5 Url重写忽略问号

时间:2013-12-20 14:28:01

标签: asp.net url-rewriting iis-7.5

我正在尝试在IIS 7.5 Url Rewrite中创建重写规则。我想要实现的是当有人点击某个pdf文件时,我希望将它们重定向到一个表单,然后当他们填写表单时,他们会得到一个只有问号的pdf文件。 例如?download=true附加到通过重写规则的末尾,所以:

pdf/my-pdf-file.pdf will be redirected to go-to-this-file.aspx(这将是一种形式)

然后他们被重定向到:

pdf/my-pdfpfile.pdf?download=true重写规则不应该提取,但它确实是我的问题。

这是我的规则:

<system.webServer>
        <rewrite>
            <rules>
                <rule name="My PDF Rule">
                  <match url="^pdf/my-pdf-file.pdf$" ignoreCase="true" />
                    <action type="Rewrite" url="/go-to-this-file.aspx" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>

请有人帮忙。干杯!

1 个答案:

答案 0 :(得分:0)

问题很简单,您应该检查{QUERY_STRING}是否包含download=true,然后再重定向。试试这个:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="My PDF Rule">
                <match url="^pdf/my-pdf-file.pdf$" ignoreCase="true" />
                <conditions>
                    <add input="{QUERY_STRING}" pattern="download=true" negate="true" />
                </conditions>
                <action type="Rewrite" url="/go-to-this-file.aspx" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>