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

如何为Sitefinity Cloud配置URL重写?旧资产跳转失败求助

解决资产URL重定向到ww2子域名的问题

先梳理你之前两次尝试的问题,再给出可行的重写规则:

之前尝试的问题分析

  • 尝试1:IIS重写规则的<match url>匹配的是域名之后的路径部分,不包含域名本身,所以^.*\.gov/asset.*$这个模式永远不会命中。另外就算匹配成功,{R:0}会把整个匹配内容拼到ww2域名后,导致URL变成https://ww2.sitename.gov/www.sitename.gov/asset...,完全不符合需求。
  • 尝试2:^asset(.*)$的匹配会把路径开头的asset去掉,比如asset12345.aspx会被重定向到ww2.sitename.gov/12345.aspx,丢失了关键的asset前缀;同时这个规则只覆盖了小写asset开头的路径,没包含大写Assets/开头的子目录情况。

可行的重写规则

下面的规则能覆盖你提到的三类资产格式,并且正确完成从www到ww2的重定向:

<rewrite>
  <rules>
    <rule name="Redirect Asset URLs to ww2" stopProcessing="true">
      <!-- 匹配所有以asset(大小写不限)开头的路径,包括Assets子目录 -->
      <match url="^(asset.*|Assets/.*)$" ignoreCase="true" />
      <!-- 仅当请求来自www.sitename.gov时触发 -->
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.sitename\.gov$" />
      </conditions>
      <!-- 重定向到ww2子域名,保留完整路径和查询字符串 -->
      <action type="Redirect" url="https://ww2.sitename.gov/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

关键说明

  • ^(asset.*|Assets/.*)$:用正则分支覆盖两种开头的路径,ignoreCase="true"确保大小写都能匹配(比如Asset123.aspx也能命中)。
  • {R:0}:代表整个匹配到的路径内容,比如asset12345.aspx或Assets/sub-dir/file.pdf,能完整保留原路径拼到ww2域名后。
  • appendQueryString="true":如果原URL带查询参数(比如assetfactory=1234.aspx?param=1),会自动追加到重定向后的URL中。
  • redirectType="Permanent":返回301永久重定向,利于搜索引擎收录更新。

额外检查项

  1. 确保你的IIS服务器已经安装了URL Rewrite模块,没有的话需要先安装。
  2. 把这个规则放在所有其他重写规则的最前面,避免被其他规则拦截。
  3. 测试时可以用浏览器的开发者工具查看网络请求,确认返回的是301状态码,且跳转目标URL正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:04:54