Iis 7 是否基于每个站点禁用IIS7 URL重写继承?
我有很多全局IIS7 URL重写规则,默认情况下它们适用于所有站点。有几个站点我想禁用所有规则的重写继承。我该怎么做?我不高兴地尝试了以下方法:Iis 7 是否基于每个站点禁用IIS7 URL重写继承?,iis-7,url-rewriting,Iis 7,Url Rewriting,我有很多全局IIS7 URL重写规则,默认情况下它们适用于所有站点。有几个站点我想禁用所有规则的重写继承。我该怎么做?我不高兴地尝试了以下方法: <rewrite> <rules> <clear /> </rules> </rewrite> 对不起,这无法完成: 全局重写规则用于定义服务器范围的URL重写 逻辑。这些规则在applicationHost.config文件中定义 并且它们不能在任何较低的配置上被覆盖或禁用
<rewrite>
<rules>
<clear />
</rules>
</rewrite>
对不起,这无法完成: 全局重写规则用于定义服务器范围的URL重写 逻辑。这些规则在applicationHost.config文件中定义 并且它们不能在任何较低的配置上被覆盖或禁用 级别,例如站点或虚拟目录。全球规则总是 在绝对URL路径上操作(即,请求的URI没有 服务器名称) 及 全局规则集总是先求值,然后再分发 规则集将使用global生成的URL字符串进行计算 规则集
如果您能够将所需的功能移出全局规则并移动到网站的web.config中,您可以在每个规则上添加一个条件,根据该网站是否存在本地文件选择加入或退出每个规则。这将允许您部署一组通用的代码和配置,但需要进行本地/每个站点的自定义 选择加入规则示例:
<rule name="HTTP to HTTPS Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="off" />
<!-- Opt-in to rule via presense of a local file -->
<add input="{DOCUMENT_ROOT}/Local/rewrite-rule-enable-https.txt" matchType="IsFile" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
注意:不部署本地文件夹,而是用于存储每个站点的文件
因此,本质上,除非在站点的/Local文件夹中找到名为“rewrite rule enable https.txt”的文件,否则此规则不会启用