gpt4 book ai didi

iis - 使用 IIS Url Rewrite 2.0 和 ARR 重写自定义标记属性

转载 作者:行者123 更新时间:2023-12-02 03:26:05 26 4
gpt4 key购买 nike

我开发了一个自定义网格控件,它使用 data-*属性来配置网格的工作方式(与 Bootstrap 数据 API 组件的工作方式类似)。对于特定部署,我必须使用 IIS 和应用程序请求路由 (ARR) 将我的 Web 应用程序代理到另一个 Web 应用程序+ URL 重写。代理部分已全部完成,我当前正在尝试配置出站规则以重写 url 以匹配。例如,我当前设置的规则如下:

  • 通过更新 Location: 重写 HTTP 重定向 header 。
  • 重写标准标签中 URI 的 Html 内容(例如 A、Area、base 等)
  • 重写相对 URI 的 Css 内容(例如/cassette.axd ->/blog/cassette.axd)。

我遇到的最后一个问题是让 URL 重写模块接受我的数据属性中的 url,例如,如果我的网格是这样的:

<table data-grid data-query="/api/users/">

应重写为

<table data-grid data-query="/blog/api/users/">

我强调所有其他标签,例如 <a href<img src按预期甚至自定义工作 <property value标签已正确重写。似乎只是由连字符属性组成。

我尝试添加 <customTags>部分,我的自定义标签位于:

<customTags>
<tags name="Bootgrid">
<tag name="table" attribute="data-query" />
<tag name="table" attribute="data-update" />
<!-- This next tag WORKS -->
<tag name="property" attribute="value" />
</tags>
</customTags>

但是,上面的内容不匹配任何带有连字符的属性。不确定这是否真的可以解决,因为我在 IIS 配置中看不到任何内容来设置这些。

令人烦恼的是,一旦您在 IIS 中创建了一组自定义标记,您似乎就无法再次编辑它们。 :-/

最佳答案

我也遇到了同样的问题,并且看起来(尽管未得到 Microsoft 确认)IIS 无法处理包含 - 的自定义标记

对我有用的解决方法是使用另一个出站规则。在此示例中,我尝试替换 img 标记中的 data-zoom-image 属性(您需要将 替换为 >data-zoom-image 与“match”和“action”中的 data-query

<rule name="RewriteRelativePathsCustomTags1" preCondition="IsHtml" enabled="true">
<match filterByTags="None" pattern="&lt;img ([^>]*)data-zoom-image=&quot;(.*?)&quot;([^>]*)>" />
<action type="Rewrite" value="&lt;img {R:1}data-zoom-image=&quotYOUR VALUE TO REWRITE i.e /blog{R:2}&quot;{R:3}>" />
</rule>
<preConditions>
<preCondition name="IsHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>

希望这有帮助

关于iis - 使用 IIS Url Rewrite 2.0 和 ARR 重写自定义标记属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com