[英]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.