尝试使用此模块重写URL,但是在尝试访问URL时出现以下错误 . 在网上寻找答案,但不知道解决这个问题的最佳方法是....任何想法?
HTTP错误500.52 - URL重写模块错误 . 当HTTP响应的内容被编码时(“gzip”),不能应用出站重写规则 . ** IIS收到请求;但是,在处理请求期间发生了内部错误 . 此错误的根本原因取决于哪个模块处理请求以及发生此错误时工作进程中发生的情况 . IIS无法访问网站或应用程序的web.config文件 . 如果NTFS权限设置不正确,则会发生这种情况 . IIS无法处理网站或应用程序的配置 . 经过身份验证的用户无权使用此DLL . 请求将映射到托管处理程序,但未安装.NET可扩展性功能 .
4 回答
我尝试了aracntido的评论,但它似乎在IIS7中不起作用 . 它在IIS7.5的服务器上工作正常,所以我不确定是否有解决方法 .
修复是在web.config中使用它:
这是设计的,这意味着当HTML可用于URL Rewrite模块时,HTML已被压缩,因此它无法重写它,因为它必须首先解压缩它,重写它然后再次压缩它,这也是处理器能力强大 . 如果是动态内容,请在压缩之前尝试重写它 .
在服务器级别(InetMgr)的“模块”中的URL重写模块之后移动动态压缩模块 . 禁用规则的“日志重写URL”(默认),否则模块将尝试成为管道中的最后一个 .
静态压缩与出站重写不兼容 .
虽然禁用静态和动态压缩很有效,但此方法不适用于
*.axd
文件 . 这些文件是客户端资源,如js,Ajax等 . 阅读更多关于axd文件的信息HERE .因为这些文件是自动压缩的 . 阅读HERE更多关于为什么!
让它们工作的更简单方法是将设置
Accept-Encoding
标头的请求发送到空!这可以通过两种方式实现:[BAD] 更改你的firefox设置HOW?
[NICE] 设置入站规则以清除 Headers 中的
Accept-Encoding
! HOW?在IIS 7.0中关闭静态压缩(对我的情况不必要)修复了一个类似的问题,其中URL将加载,但页面刷新将产生基本错误500 .
我将index.html添加到URL,并将错误细化为'HTTP错误500.52 - URL重写模块错误 . 当HTTP响应的内容被编码(“gzip”)'错误时,不能应用出站重写规则 .
感谢aracntido指出这一点,你帮我解决了这个问题 .