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

IIS URL Rewrite规则配置求助:含特殊字符#的URL跳转

解决IIS URL重写无法匹配Hash片段的问题

问题核心在于:浏览器不会将URL中#后的Hash片段发送到服务器,所以你的IIS服务器端重写规则根本无法获取到/#/db/user这部分内容,自然无法触发匹配。

要实现需求,必须结合客户端脚本处理,具体操作如下:

  • 保留服务器端对/page的匹配规则,确保访问http://mydomain/page时返回一个包含处理脚本的页面(比如page.html):

    <rule name="Serve Page with Redirect Script" stopProcessing="true">
      <match url="^page$" />
      <action type="Rewrite" url="page.html" />
    </rule>
    
  • 在page.html中添加JavaScript代码,检测Hash片段并执行跳转:

    // 处理页面初始加载和Hash变化的情况
    function handleHashRedirect() {
      if (window.location.hash === '#/db/user') {
        window.location.href = 'http://mydomain:8443';
      }
    }
    
    // 页面加载完成后检查
    window.addEventListener('load', handleHashRedirect);
    // Hash片段变化时也检查(比如用户手动修改Hash)
    window.addEventListener('hashchange', handleHashRedirect);
    

这样,当用户访问http://mydomain/page/#/db/user时,浏览器先请求/page,服务器返回带脚本的页面,客户端脚本检测到Hash片段后自动跳转到目标地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:36:24