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

IIS 10上URL Rewrite规则转发请求至WordPress应用失败问题

解决IIS根目录重写规则转发WordPress出现404的问题

针对你遇到的根目录重写规则失效(重定向正常但重写404)的问题,可按以下步骤排查解决:

  • 调整根目录重写规则的stopProcessing属性
    默认情况下,重写规则的stopProcessing为true,会阻止后续子目录的规则执行。而WordPress所在的/wp/目录需要自身的重写规则将请求转发到index.php才能解析。修改根目录web.config中的规则,设置stopProcessing="false":

    <rule name="Forward to WordPress" stopProcessing="false">
        <match url="^this-is-a-test$" />
        <action type="Rewrite" url="/wp/{R:0}/" />
        <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
    </rule>
    
  • 确认WordPress子目录的重写规则生效
    检查/wp/目录下的web.config,确保存在正确的WordPress重写规则,该规则负责将所有非文件/目录的请求转发到index.php:

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

    若该文件不存在,可通过WordPress后台的“固定链接”设置重新生成(需确保IIS有写入权限)。

  • 配置WordPress的URL参数
    在/wp/wp-config.php中添加以下定义,明确WordPress的安装路径和站点地址,避免因URL不匹配导致解析失败:

    define('WP_HOME', 'http://你的域名');
    define('WP_SITEURL', 'http://你的域名/wp');
    
  • 检查IIS模块与处理程序映射

    1. 确认IIS已启用URL Rewrite 2.1和FastCGI模块;
    2. 确保根目录和/wp/目录都配置了正确的PHP处理程序映射,且设置为“继承父级设置”,保证重写后的请求能被PHP解析。
  • 启用失败请求跟踪排查细节
    在IIS管理器中对站点启用“失败请求跟踪规则”,跟踪404状态码。通过生成的日志文件,可查看重写后的请求是否正确传递到/wp/index.php,以及中间是否存在规则拦截或模块错误。

内容的提问来源于stack exchange,提问作者Remi Despres-Smyth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:46:19