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

.htaccess屏蔽autodiscover.xml仍返回WordPress 404页如何解决

问题原因

你原来的配置不生效核心是<Files>指令仅匹配文件名称,不支持路径匹配,你写的带路径的规则无法命中目标文件,请求会继续往下走到WordPress的重写逻辑,最终触发WP自带的404响应。另外Order Allow,Deny是Apache 2.2的旧语法,2.4及以上版本已经改为Require all denied,就算修正语法,路径不匹配的问题还是会导致规则失效。

正确配置方案

方案1:根目录.htaccess添加重写规则(兼容性最好,不需要目录真实存在)

把下面的规则添加到站点根目录.htaccess文件的最顶部,必须放在WordPress自带的重写规则块之前,保证优先匹配:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^autodiscover/autodiscover\.xml$ - [F,L]
</IfModule>
  • [F]标志会直接返回403 Forbidden响应,[L]标志终止后续所有重写规则执行,完全不会触发WordPress的PHP逻辑
  • .htaccess的重写规则匹配的是相对目录路径,不需要加前导斜杠

方案2:子目录单独配置(仅适用于autodiscover目录真实存在的场景)

在/autodiscover目录下单独新建.htaccess文件,写入对应版本的规则即可:

# Apache 2.2版本语法
<Files "autodiscover.xml">
  Order Allow,Deny
  Deny from all
</Files>

# Apache 2.4及以上版本语法
<Files "autodiscover.xml">
  Require all denied
</Files>

验证方法

配置完成后直接访问该路径,正常会直接返回Apache默认的403错误页,不会再加载WordPress主题样式的404页面,也不会触发PHP执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:54:02