簡體   English   中英

如何在ASP.NET Core中添加出站重寫規則

[英]How to add outbound rewrite rules in ASP.NET Core

我正在使用一個簡單的出站重寫規則來提供CDN中的靜態資源。 它在IIS上很好用,但在ASP.NET Core中不起作用。

<outboundRules rewriteBeforeCache="true">
  <rule name="CDN" preCondition="CheckHTML" enabled="true" stopProcessing="true">
    <match filterByTags="Img, Link, Script" pattern="(^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\\|\/\/).*\.(jpg|jpeg|png|js|css|svg|ico|gif).*)" />
    <action type="Rewrite" value="https://cdn.com{R:1}" />
    <conditions logicalGrouping="MatchAll">
    </conditions>
  </rule>
  <preConditions>
    <preCondition name="CheckHTML">
      <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
    </preCondition>
  </preConditions>
</outboundRules>

Microsoft Docs提供了一個示例,但沒有出站URL(作為中間件),並且提到該功能目前尚不支持中間件。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/url-rewriting?view=aspnetcore-2.2#unsupported-features 在此處輸入圖片說明

我有一個托管在Microsoft Azure上的ASP.NET Core Web應用程序。 如何啟用出站重寫規則?

是否有人在ASP.NET Core中處理出站重寫規則? 請幫忙!

TIA!

您的問題不清楚。 ASP.NET Core是框架,並且在所有托管模式中都是相同的。 IIS可以承載ASP.NET Core應用程序(在v2.2 +中可以選擇“進行中”,也可以作為Kestrel的反向代理),也可以直接使用Kestrel(在這種情況下,HTTP.sys是您的“主機”)。 我假設您是在談論后一種情況,在這種情況下,不會。 HTTP.sys沒有重寫功能,因此您完全依賴於中間件,后者當然不支持出站規則。 如果您需要出站規則,則需要在IIS(或其他完整的Web服務器,例如Apache,Nginx等)中托管。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM