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

Windows服务器子目录部署WordPress子页面404问题求助

解决Windows服务器子目录部署WordPress的404问题

我帮你梳理下解决方案,你遇到的问题核心是原来的重写规则是针对根目录部署的WordPress,现在WP放在/blog子目录,规则路径没对应上,调整一下就能解决:

1. 调整web.config的重写规则

你有两种可行的配置方式,选一种即可:

选项A:修改根目录的web.config

把原来的规则替换成下面的代码,它会专门处理/blog开头的请求,将非文件/非目录的请求转发到/blog/index.php:

<rewrite>
  <rules>
    <rule name="WordPress Blog Subdirectory" stopProcessing="true">
      <match url="^blog/(.*)$" ignoreCase="false" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="blog/index.php/{R:1}" />
    </rule>
  </rules>
</rewrite>

选项B:在/blog子目录单独添加web.config

如果不想改动根目录的配置,直接在/blog文件夹里新建一个web.config,用你原来的规则就行(因为这里的路径是相对/blog的,匹配*就会覆盖子目录下的所有请求):

<rewrite>
  <rules>
    <rule name="WordPress" patternSyntax="Wildcard">
      <match url="*"/>
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
      </conditions>
      <action type="Rewrite" url="index.php"/>
    </rule>
  </rules>
</rewrite>

2. 确认WordPress后台的URL设置

登录WP后台,进入设置 > 常规,检查两个关键URL:

  • WordPress地址(URL):必须填https://你的域名.com/blog(对应WP的实际安装路径)
  • 站点地址(URL):如果你的WP站点就是通过/blog访问,直接和上面的地址保持一致即可;如果想让WP作为整个域名的主站(比如访问根域名就打开WP),这里填https://你的域名.com,不过这种情况需要额外调整根目录规则,你当前的场景选前者就好。

3. 刷新固定链接设置

进入设置 > 固定链接,随便选择一个非“朴素”的选项(比如「文章名称」),然后点击保存更改。这个操作会让WordPress自动校验重写规则的有效性,同时更新内部的链接结构,确保所有页面路径都能正确解析。

做完这些步骤后,/blog下的其他页面应该就能正常访问了。如果还是有问题,记得检查一下Windows服务器的IIS是否已经安装并开启了URL Rewrite组件(这是重写规则生效的前提)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:12:47