使用IIS Url Rewrite 2.0和ARR重写自定义标记属性
我开发了一个自定义网格控件,它使用使用IIS Url Rewrite 2.0和ARR重写自定义标记属性,iis,url-rewriting,custom-tags,arr,Iis,Url Rewriting,Custom Tags,Arr,我开发了一个自定义网格控件,它使用data-*属性来配置网格的工作方式(类似于引导数据API组件的工作方式)。对于特定部署,我必须使用IIS和应用程序请求路由(ARR)将我的web应用程序代理到另一个web应用程序中+URL重写。代理部分已完成,我当前正在尝试配置出站规则,以便将URL重写为匹配。例如,我当前设置了如下规则: 通过更新位置:标头重写HTTP重定向 在标准标记(例如,A、区域、基等)中重写URI的Html内容 重写相对URI的Css内容(例如/CASE.axd->/blog/CA
data-*
属性来配置网格的工作方式(类似于引导数据API组件的工作方式)。对于特定部署,我必须使用IIS和应用程序请求路由(ARR)将我的web应用程序代理到另一个web应用程序中+URL重写。代理部分已完成,我当前正在尝试配置出站规则,以便将URL重写为匹配。例如,我当前设置了如下规则:
- 通过更新
标头重写HTTP重定向位置:
- 在标准标记(例如,A、区域、基等)中重写URI的Html内容
- 重写相对URI的Css内容(例如/CASE.axd->/blog/CASE.axd)
<table data-grid data-query="/api/users/">
应改写为
<table data-grid data-query="/blog/api/users/">
我强调,所有其他标记,例如
,我都有相同的问题,而且(尽管未经Microsoft确认)IIS似乎无法处理包含-
一个对我有效的解决方法是使用另一个出站规则。在本例中,我试图替换img标记中的数据缩放图像属性(您需要在“匹配”和“操作”中用表替换img,用数据查询替换数据缩放图像
" />
希望这有助于IIS上的ARR似乎在标记中包含带破折号(-)的属性时存在问题
更新到v3.0.1952对我来说似乎已经解决了这个问题,但我仍在调查。有些晚了,但这是在Web版本(2.0.1952)中发布的:
重要-此版本中的更改
- Windows 10和Windows Server 2016支持-现在可以在此版本的Windows 10或Windows Server 2016上安装URL重写模块2.0
- 现在支持包含破折号的自定义属性。这是必需的,因为HTML 5具有以下确定HTML属性名称的规则:
- 与KB2974666一样,包含URL重写2.0(2014年6月)的修补程序
在测试之后,我发现了完全相同的行为。我发现的唯一信息是:我指的是URL重写7.2.1952,而不是ARR。
<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>
<rule name="RewriteRelativePathsCustomTags1" preCondition="IsHtml" enabled="true">
<match filterByTags="None" pattern="<img ([^>]*)data-zoom-image="(.*?)"([^>]*)>" />
<action type="Rewrite" value="<img {R:1}data-zoom-image="YOUR VALUE TO REWRITE i.e /blog{R:2}"{R:3}>" />
</rule>
<preConditions>
<preCondition name="IsHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>