IIS 7.5 中的 URL 重写导致内部服务器错误

Posted

技术标签:

【中文标题】IIS 7.5 中的 URL 重写导致内部服务器错误【英文标题】:Url Rewrite in IIS 7.5 causes Internal server error 【发布时间】:2011-03-20 23:05:15 【问题描述】:

我有一个运行在 Windows 2008 R2、ASP.NET v4.0 上的 Web 应用程序。

我安装了Url Rewrite Module,并开始使用它,如官方示例所示。

<rewrite> 标签添加到<system.webServer> 下的web.config 时,我的问题就开始了——实际上,当我尝试浏览到当前应用程序下的任何页面时,我得到500 - Internal server error

这是我一直添加的<rewrite> 块:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="test1">
                <match url="^default/([0-9]+)/([_0-9a-z-]+)" />
                <action type="Rewrite" url="default.aspx?id=R:1&amp;title=R:2" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

【问题讨论】:

【参考方案1】:

刚刚遇到同样的错误并找到了解决方法。您需要为 IIS 安装模块以进行 URL 重写。你可以在这里下载:http://www.iis.net/download/URLRewrite

干杯,

【讨论】:

【参考方案2】:

我还安装了 Url Rewrite Module 2.0。但是,在某些时候,我还卸载并重新安装了 iis7,所以我认为 rewrite 模块没有在 iis 中正确注册。即使我只是在 web.config 中添加了一组空标签,我也遇到了与上述相同的错误。

我的解决方案是卸载 URL 重写模块(通过程序和功能)并使用 Web 平台安装程序重新安装它。我在安装过程中停止了 iis7(不确定是否重要)。我不需要重新启动。

【讨论】:

通过Web Platform Installer安装模块有帮助,谢谢:) 您在“程序和功能”树的哪个位置找到 URL 重写? 找到它...它列在程序和功能根目录下。不在windows组件下。【参考方案3】:

我解决了从 exe 安装程序卸载 Url Rewrite Module 2.0,从 https://www.microsoft.com/web/downloads/platform.aspx 安装 web 平台,然后转到 web 平台上的产品,然后安装 url rewriter 模块。 在 Windows 7 x86 上,iis 7。

【讨论】:

【参考方案4】:

Installer of URL Rewrite Module 扩展安装文件 C:\Windows\System32\inetsrv\config\schema\rewrite_schema.xml 中定义的重写部分的架构。

【讨论】:

以上是关于IIS 7.5 中的 URL 重写导致内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7.5 URL 重写编码

带有 URL 重写模块的 IIS 7.5 在回发时将 QueryString 参数加倍

windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)

在 IIS 7.5 中重写服务器变量

使用IIS7 URL重写将请求转发到内部Web服务器的虚拟目录

IIS 7.5 重写错误?无限循环