简单的 IIS 重写出站规则出现错误和页面崩溃

Simple IIS rewrite outbound rule is giving an error and page crashes

我尝试在某些网站已成功实施的 IIS 上使用 IIS 重写出站规则。

所以我创建了一个简单的规则,将单词 "test" 替换为“123456”。

我收到了这个错误

500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

Web.config

<system.webServer>  
        <!--<urlCompression dynamicCompressionBeforeCache="false" />     -->
        <urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" />

似乎如果我添加任何(只是任何)出站规则,网站就会崩溃。 我的意思是规则的模式没有影响,但规则本身就是一个条目。

有线索吗?

P.S。我应该安装 URL Rewrite Module 2.0 因为我好像安装了旧版本... 它能解决问题吗?

P.S。我做了一些额外的更改,但它根本不起作用。

  1. 我用

< urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" / >

  1. 我安装了此修复程序 rewrite_2.0_rtw_x64_KB2749660.msp (https://support.microsoft.com/en-us/kb/2749660 "FIX: Response is corrupted when you configure an outgoing rule in URL Rewrite Module 2.0 for IIS 7.0 or IIS 7.5")

我也在这里问过这个问题https://forums.iis.net/t/1226401.aspx?Outbound+rule+is+giving+500+error+for+the+entire+website

对于 outboundRules 使用如下详细信息..

  1. 在 运行 机器上,从命令行 运行:

    reg 添加 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0

    您可能需要使用 iisreset 跟进

  2. 将以下内容添加到 web.config 文件的 system.webServer 部分的顶部,以禁用不受支持的静态压缩,同时保持动态不受损害;

<urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" />

  1. 可能不需要最后一步 - 但是!打开您的 IIS 管理控制台- 单击顶层项目,从 IIS 部分打开“模块”组件。在此处的右侧栏中,单击“查看有序列表...”并确保 RewriteModule 出现在 DynamicCompressionModule 下方的列表中。 作为参考,您可以在此处查看 - http://codeblog.shawson.co.uk/iis7-urlrewrite-outbound-links-with-compression-enabled/

<rewrite>
  <rules>
    <rule name="InboundFriendlyAboutUs" stopProcessing="true">
      <match url="^about-our-car-finance$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="page.aspx" />
    </rule>
  </rules>
  <outboundRules>
    <rule name="Outbound1" preCondition="IsHtml">
      <match filterByTags="A, Form" pattern="^(.*)About-Us\.aspx$"/>
      <action type="Rewrite" value="{R:1}about-our-car-finance"/>
    </rule>
    <preConditions>
      <preCondition name="IsHtml">
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html"/>
      </preCondition>
    </preConditions>
  </outboundRules>
</rewrite>