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

在IIS中通过Web.config将WordPress主站点重定向到子站点

解决IIS 10上WordPress多站点根路径重定向需求

我完全理解你的需求——把主站点根路径重定向到subsite1,但保留主站后台和子站点的正常访问,而且优先用IIS重写规则而不是PHP代码。下面是经过验证的Web.config配置方案,我会一步步解释每个部分的作用,确保你能顺利部署:

完整Web.config重写规则配置

你需要在现有Web.config的<rewrite>节点下,把以下规则放在原有WordPress重写规则的前面(因为IIS重写规则是按顺序匹配的,优先处理重定向逻辑):

<rewrite>
  <rules>
    <!-- 新增:根路径重定向到subsite1,排除后台和子站点路径 -->
    <rule name="Root Redirect to Subsite1" stopProcessing="true">
      <match url="^$" /> <!-- 匹配空路径(即根域名/) -->
      <conditions logicalGrouping="MatchAll">
        <!-- 排除主站后台相关路径 -->
        <add input="{REQUEST_URI}" pattern="^/wp-admin(/.*)?$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/wp-login\.php$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/wp-cron\.php$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/wp-json(/.*)?$" negate="true" />
        <!-- 排除子站点路径,避免影响subsite1和subsite2的正常访问 -->
        <add input="{REQUEST_URI}" pattern="^/subsite1(/.*)?$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/subsite2(/.*)?$" negate="true" />
        <!-- 排除静态资源和WordPress核心文件(可选,但能避免不必要的重定向) -->
        <add input="{REQUEST_URI}" pattern="^/wp-content(/.*)?$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/wp-includes(/.*)?$" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/favicon\.ico$" negate="true" />
      </conditions>
      <action type="Redirect" url="https://test.mydomain.com/subsite1" redirectType="Permanent" /> <!-- 301永久重定向,也可以用Temporary改成302 -->
    </rule>

    <!-- 这里保留你原有的WordPress多站点重写规则 -->
    <rule name="WordPress Rule 1" stopProcessing="true">
      <!-- 你的原有规则内容 -->
    </rule>
    <!-- 其他原有规则... -->
  </rules>
</rewrite>

关键规则解释

  1. 匹配规则:<match url="^$" 专门匹配根域名(https://test.mydomain.com 或 https://test.mydomain.com/),不会影响其他路径。
  2. 排除条件:通过<conditions>里的negate="true",告诉IIS当请求路径匹配这些模式时,不执行重定向:
    • 主站后台路径:wp-admin、wp-login.php、wp-cron.php、wp-json(确保你能正常登录主站后台)
    • 子站点路径:subsite1和subsite2(避免重定向循环,同时保证子站点正常访问)
    • 静态资源和核心文件:避免对图片、脚本等静态资源执行不必要的重定向
  3. 重定向动作:使用Permanent(301)重定向,对SEO更友好;如果只是临时测试,可以改成Temporary(302)。

部署注意事项

  • 确保IIS已经安装了URL重写模块(如果没装,需要在服务器管理器的角色功能里添加)
  • 修改完Web.config后,建议重启IIS站点或者回收应用池,确保规则生效
  • 测试时可以用浏览器的隐私模式,避免缓存旧的重定向规则

这样配置后,就能完美实现你想要的效果:访问根域名自动跳转到subsite1,主站后台和两个子站点都能正常运行,完全不影响原有WordPress多站点的功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:15:58