微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET / IIS7 Url重写映射不起作用

我按照说明 Learn IIS’s webpage为我的asp.net应用程序添加了重写映射的静态重定向.

以下是配置:

<rule name="Redirect rule1 for information" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{information:{REQUEST_URI}}" pattern="(.+)" />
    </conditions>
    <action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>

<rewriteMaps>
    <rewriteMap name="information">
        <add key="/information/CorporateSales.aspx"
             value="/KB/information/CorporateSales" />
        <add key="/information/ComputerRepair.aspx"
             value="/KB/information/ComputerRepair" />
    </rewriteMap>
</rewriteMaps>

这甚至最初是由IIS管理器中的向导创建的,用于使用重写映射.

所以想法是/information/CorporateSales.aspx – > / KB / information / CorporateSales具有301重定向(永久移动).

但是我只是加载原始的aspx页面(我们将在以后删除).我甚至删除文件,因为它认为现有资源,并且我只是得到一个没有重定向的普通404.

有人有想法吗?

让我澄清一下:

重写模块工作,它已安装并运行.我的标准正则表达式规则运行良好.但我的重写地图却没有.

解决方法

这篇文章 http://www.iis.net/learn/extensions/url-rewrite-module/using-rewrite-maps-in-url-rewrite-module和下面的代码我有用.
<rewrite>
    <rules>
        <rule name="Redirect rule1 for RedirectURLs">
            <match url=".*" />
            <conditions>
                <add input="{RedirectURLs:{REQUEST_URI}}" pattern="(.+)" />
            </conditions>
            <action type="Redirect" url="{C:1}" appendQueryString="false" />
        </rule>
    </rules>
    <rewriteMaps>
        <rewriteMap name="RedirectURLs">
            <add key="/privacy.PHP" value="/privacy" />
        </rewriteMap>
    </rewriteMaps>
</rewrite>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐