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

IIS 10下WordPress子文件夹更名后的URL永久重定向配置问题

解决IIS 10中ASP.NET MVC站点下WordPress应用别名重定向问题

问题背景

ASP.NET MVC项目部署在IIS 10,站点下的WordPress应用原别名为oldblog,现已改为blog。需要将所有指向/oldblog/*的请求永久重定向到/blog/*,要求完整保留原URI的路径部分和查询字符串,仅替换别名。

现有重写规则仅部分生效,URI其余部分跳转结果不稳定,规则如下:

<rule name="Rewrite /oldblog to /blog" stopProcessing="true">
  <match url="^oldblog(.*)$" ignoreCase="true" />
  <action type="Redirect" url="https://www.example.com/blog/{R:1}" redirectType="Permanent" />
</rule>

修正后的重定向规则

使用以下规则可实现稳定的全路径重定向:

<rule name="Permanent Redirect /oldblog to /blog" stopProcessing="true">
  <match url="^oldblog(.*)$" ignoreCase="true" />
  <action 
    type="Redirect" 
    url="/blog{R:1}" 
    redirectType="Permanent" 
    appendQueryString="true" 
  />
</rule>

关键调整说明

  1. 相对路径替代绝对路径:将硬编码的域名路径改为/blog{R:1},提升配置灵活性,避免域名变更后需重新修改规则。
  2. 显式保留查询字符串:添加appendQueryString="true",确保原请求的查询字符串(如?utm_source=xxx)被完整传递到新地址。
  3. 修正路径拼接逻辑:去掉/blog与{R:1}之间的斜杠,避免当R:1为空时出现冗余路径(若需强制跳转后路径带尾部斜杠,可单独添加补充规则)。

验证案例

以下场景均可正确跳转:

  • /oldblog/ → /blog/
  • /oldblog/category/somecategory/ → /blog/category/somecategory/
  • /oldblog/post/123/?utm_source=google → /blog/post/123/?utm_source=google

配置注意事项

确保该规则配置在根ASP.NET MVC站点的web.config的<rewrite><rules>节点下,而非旧oldblog应用程序的配置文件中(旧应用可能已停用,规则无法触发)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:11:29