IIS URL重写为querystring参数

时间:2017-06-15 19:24:52

标签: asp.net iis url-rewriting

我需要捕获对非文件夹的文件夹的请求,将其重定向到默认页面,并将请求的路径作为查询字符串。

例如,如果用户请求

www.mysite.com/IT

我希望它重定向到

www.mysite.com/default.aspx?q=IT

但是,如果他们请求真实子文件夹中的页面,则不应重定向该页面。例如,对www.mysite.com/projects/new.aspx的请求不应尝试重新指示,因为它是站点中的物理文件夹和文件。

2 个答案:

答案 0 :(得分:1)

使用IIS Rewrite module并在web.config中设置它:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirector" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions>
                        <add input="{PATH_INFO}" pattern="/*" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/default.aspx?q={PATH_INFO}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

答案 1 :(得分:0)

您可以使用&#34; q =&#34;定义404错误页面,该页面将重定向到您的默认页面。你想要的