Asp.net

簡單的 IIS 重寫出站規則給出錯誤和頁面崩潰

  • June 29, 2020

我嘗試在某些網站成功實施的 IIS 上使用 IIS 重寫出站規則。

所以我創建了一個簡單的規則,用“123456”代替“test”這個詞。

我收到了這個錯誤

500內部伺服器錯誤。您要查找的資源有問題,無法顯示。

網頁配置

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

似乎如果我添加任何(只是任何)出站規則,網站就會崩潰。我的意思是規則的模式沒有影響,但規則本身就是一個條目。

有什麼線索嗎?

**PS 我應該安裝 URL Rewrite Module 2.0 因為好像我已經安裝了舊版本……**它會解決問題嗎?

在此處輸入圖像描述

在此處輸入圖像描述

PS我做了一些額外的改變,但它根本不起作用。

  1. 我用

< urlCompression doStaticCompression=“false” doDynamicCompression=“false” dynamicCompressionBeforeCache=“false” />

  1. 我安裝了此修復程序 rewrite_2.0_rtw_x64_KB2749660.msp(https://support.microsoft.com/en-us/kb/2749660 “修復:在 IIS 7.0 或 IIS 7.5 的 URL 重寫模組 2.0 中配置傳出規則時響應已損壞")

我在這裡也問過這個問題https://forums.iis.net/t/1226401.aspx?Outbound+rule+is+giving+500+error+for+the+entire+website

對於 outboundRules 使用如下詳細資訊..

  1. 在執行網站的機器上,從命令行執行:

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

您可能需要使用 iisreset 跟進此操作 2. 將以下內容添加到 web.config 文件的 system.webServer 部分的頂部,以禁用不受支持的靜態壓縮,同時保持動態不受損害;

&lt;urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" /&gt;
  1. 最後一步,可能不需要 - 但是!打開您的 IIS 管理控制台 - 點擊頂層項目,從 IIS 部分打開“模組”組件。在右側欄中,點擊“查看有序列表…”並確保 RewriteModule 出現在 DynamicCompressionModule 下方的列表中。作為參考,您可以在此處查看 - http://codeblog.shawson.co.uk/iis7-urlrewrite-outbound-links-with-compression-enabled/
&lt;rewrite&gt;
 &lt;rules&gt;
   &lt;rule name="InboundFriendlyAboutUs" stopProcessing="true"&gt;
     &lt;match url="^about-our-car-finance$" /&gt;
     &lt;conditions&gt;
       &lt;add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /&gt;
       &lt;add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /&gt;
     &lt;/conditions&gt;
     &lt;action type="Rewrite" url="page.aspx" /&gt;
   &lt;/rule&gt;
 &lt;/rules&gt;
 &lt;outboundRules&gt;
   &lt;rule name="Outbound1" preCondition="IsHtml"&gt;
     &lt;match filterByTags="A, Form" pattern="^(.*)About-Us\.aspx$"/&gt;
     &lt;action type="Rewrite" value="{R:1}about-our-car-finance"/&gt;
   &lt;/rule&gt;
   &lt;preConditions&gt;
     &lt;preCondition name="IsHtml"&gt;
       &lt;add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html"/&gt;
     &lt;/preCondition&gt;
   &lt;/preConditions&gt;
 &lt;/outboundRules&gt;
&lt;/rewrite&gt;

引用自:https://stackoverflow.com/questions/30806106