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

Sitecore-NextJS:如何将带查询字符串的页面重定向为无查询字符串格式?

在Sitecore中实现URL重定向的方案

前提条件

  • 确保你的IIS服务器已安装URL Rewrite模块(这是实现该重写的基础组件)

实现步骤(通过IIS URL Rewrite配置)

1. 直接在IIS管理器中创建重写规则

打开IIS管理器,定位到你的Sitecore站点,点击URL Rewrite功能:

  • 点击右侧添加规则,选择空白规则
  • 配置规则细节:
    • 名称:自定义命名,比如Redirect MyPage with ID to Friendly URL
    • 匹配URL:
      • 请求路径:选择Matches the Pattern
      • 模式:^MyPage$(限定仅匹配MyPage这个页面路径)
      • 忽略大小写:勾选
    • 条件:
      • 逻辑关系选择Match Any(两种参数场景都需要匹配),添加两个条件:
        1. 输入:{QUERY_STRING},匹配模式:^id=([^&]+)$(匹配仅含id参数的URL)
        2. 输入:{QUERY_STRING},匹配模式:^.*id=([^&]+).*$(匹配包含id和其他参数的URL,比如带name的场景)
        • 所有条件的忽略大小写都勾选
    • 操作:
      • 操作类型:Redirect
      • 重定向URL:http://server/MyPage/{R:1}({R:1}对应条件中捕获的id值)
      • 重定向类型:选择永久(301)(利于SEO,临时跳转可选临时(302))
      • 取消勾选追加查询字符串(需要去掉原查询参数)
      • 勾选重定向时停止处理后续规则

2. 直接修改web.config配置(适合批量部署)

如果不想通过IIS界面操作,可直接在Sitecore站点的web.config中找到<rewrite>节点(无则创建),添加以下规则代码:

<rewrite>
  <rules>
    <rule name="Redirect MyPage ID to Friendly URL" stopProcessing="true">
      <match url="^MyPage$" ignoreCase="true" />
      <conditions logicalGrouping="MatchAny">
        <add input="{QUERY_STRING}" pattern="^id=([^&]+)$" ignoreCase="true" />
        <add input="{QUERY_STRING}" pattern="^.*id=([^&]+).*$" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="http://server/MyPage/{R:1}" appendQueryString="false" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

注意事项

  • 替换规则中的http://server为你的实际站点域名或服务器地址
  • 若站点使用SSL协议,需将重定向URL的协议改为https://
  • 测试前清除浏览器缓存,避免旧缓存干扰结果
  • 规则通过^MyPage$限定了匹配范围,不会影响Sitecore其他页面的正常访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:20:07