我创建了以下规则
<rule name="block js files">
<match url=".*\.(js)/*$"/>
<action type="Redirect" url="http://{SERVER_NAME}/notfound/{R:1}" redirectType="notFound"/>
</rule>
这会将对js文件的请求移到一些未找到的页面。并且这正常工作。
但是当它也阻止了应用程序请求的js文件时。
我认为从应用程序请求的js文件位于出站规则之下。
所以我想将以上规则放在入站部分,因为我认为来自浏览器的请求属于入站规则。
我应该在这里更新什么?
谢谢
我认为您可以从HTTP_REFERER将您的域列入白名单。因此,无论您是从外部访问js还是直接访问js,IIS都会重定向该请求。同时,IIS不会阻止从您的域引用的请求。当然,您可以启用CORS标头。
此外,“ notFound”不是有效的redirectType。您在寻找“找到”而不是“未找到”吗?
<rule name="block js files" enabled="true" stopProcessing="true">
<match url=".*\.(js)/*$" />
<action type="Redirect" url="http://{SERVER_NAME}/notfound/{R:1}" redirectType="Found" />
<conditions>
<add input="{HTTP_REFERER}" pattern="mydomain.com" negate="true" />
</conditions>
</rule>