You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写IIS Rewrite规则移除URL中的版本号片段

解决IIS中移除静态资源文件名版本号的URL重写规则

我完全懂你的痛点——用查询字符串控制缓存确实在部分浏览器里有兼容性问题,把版本号嵌进文件名再通过重写剥离是更可靠的方案。针对你给出的URL格式,我来提供对应的IIS Rewrite规则:

具体规则配置

你需要在站点的web.config文件中添加以下URL重写规则,确保已经安装了IIS URL Rewrite模块:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Remove Static Resource Version" stopProcessing="true">
        <match url="^(.+)\.(\d+\.\d+\.\d+\.\d+)\.(js|css)$" />
        <action type="Rewrite" url="{R:1}.{R:3}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

规则说明

  • 匹配模式:^(.+)\.(\d+\.\d+\.\d+\.\d+)\.(js|css)$
    • {R:1} 捕获版本号之前的文件名部分(比如SiteScripts/Test_js)
    • {R:2} 捕获中间的版本号(比如2018.2.11.6645,这个分组我们不会用到)
    • {R:3} 捕获文件扩展名(js或css)
  • 重写动作:将URL替换为{R:1}.{R:3},也就是去掉中间的版本号部分

验证示例

  • 原URL:http://Site/SiteScripts/Test_js.2018.2.11.6645.js → 重写后:http://Site/SiteScripts/Test_js.js
  • 原URL:http://Site/Css/SiteCss.2018.2.11.6645.css → 重写后:http://Site/Css/SiteCss.css

扩展提示

如果你的版本号格式有变化(比如不是固定四位数字段),可以把匹配模式里的版本部分改成\d+(\.\d+)+,这样能匹配任意多段的数字版本号(比如1.0、2.3.5等),修改后的匹配URL为:

^(.+)\.(\d+(\.\d+)+)\.(js|css)$

内容的提问来源于stack exchange,提问作者Mych

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:22:51