2010-09-15 283 views
15

尝试使用此模块重写URL,但是在尝试点击URL时出现以下错误。在网上寻找答案,但不知道什么是解决这个问题的最佳方法是......任何想法?URL重写出站规则IIS7

HTTP错误500.52 - URL重写模块错误。 当HTTP响应编码(“gzip”)的内容为 时,不能应用出站重写规则。**

IIS收到请求;但是,在处理请求期间发生内部错误。此错误的根本原因取决于哪个模块处理请求以及发生此错误时工作进程中发生了什么。

IIS无法访问网站或应用程序的web.config文件。如果NTFS权限设置不正确,可能会发生这种情况。

IIS无法处理网站或应用程序的配置。

经过身份验证的用户无权使用此DLL。

该请求被映射到托管处理程序,但未安装.NET可扩展性功能。

回答

6

这是有意设计的,这意味着HTML在URL Rewrite模块变得可用时已经被压缩了,所以它不能重写它,因为它必须先解压缩它,然后重写它,然后zip它又是这样,并且这是太多的处理器能力。如果它是动态内容,请在压缩之前尝试重写它。

在服务器级别(InetMgr)的“模块”中的URL重写模块之后移动动态压缩模块。为规则(默认)禁用“日志重写的URL”,否则模块将尝试成为管道中的最后一个。

静态压缩与出站重写不兼容。

15

我试过aracntido的评论,但它似乎并没有在IIS7中工作。它在IIS7.5的服务器上工作正常,所以我不确定是否有解决办法。

解决方法是在web.config中使用此:

<system.webServer> 
    <urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" /> 
</system.webServer> 
+2

感谢您让我们知道如何在网站级别配置此功能。改变整个服务器并不是我兴奋的事情。 – 2014-03-26 18:30:15

0

关掉静态压缩(不需要我的情况)在IIS 7.0中固定的类似问题,其中的URL会加载,但页面刷新会产生基本错误500.

我在URL中添加了index.html,并将此错误细化为'HTTP错误500.52 - URL重写模块错误。当HTTP响应的内容编码(“gzip”)错误时,不能应用出站重写规则。

感谢aracntido指出这一点,你帮我指出了这个问题。

1

尽管禁用静态和动态压缩很好地工作,但此方法不适用于*.axd文件。这些文件是客户端资源,如js,Ajax等。 阅读更多关于axd文件HERE

因为这些文件被自动压缩。阅读HERE更多关于为什么!

让他们工作的更简单的方法是将设置Accept-Encoding标题的请求发送到空!这是可能有两种方式:

  1. [BAD]改变你的Firefox设置HOW?
  2. [NICE]设置的入站规则明确Accept-Encoding的头! HOW?