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

WordPress子目录部署URL返回异常 跳转丢失父级目录路径

WordPress部署在子目录时路径丢失、自动跳根目录修复方案

第一步:先硬编码站点地址解决登录跳转问题

如果现在连后台都进不去,直接改子目录下的wp-config.php文件,在文件开头的<?php标记下方添加两行配置,这两个配置优先级高于数据库存储值,改完立即生效:

define('WP_HOME', 'https://example.com/example');
define('WP_SITEURL', 'https://example.com/example');

注意:配置的地址末尾不要加斜杠,否则会出现路径双斜杠的拼接错误。添加完成后用浏览器无痕模式访问https://example.com/example/wp-login.php,基本可以解决登录页自动跳根目录的问题。

第二步:修正Web服务器重写规则

如果改完地址配置后,内页、静态资源还是丢失子目录路径,优先检查重写规则是否写死了根目录:

  • 若使用Apache主机:打开子目录/example下的.htaccess文件,将默认WordPress重写规则替换为以下内容,重点确认RewriteBase和最后一条重写规则携带子目录前缀:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /example/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /example/index.php [L]
</IfModule>
# END WordPress
  • 若使用Nginx主机:修改站点对应的server配置块,为子目录添加正确的路由规则,修改完成后执行配置重载命令生效:
location /example {
    try_files $uri $uri/ /example/index.php?$args;
}
  • 若使用IIS主机:修改子目录下的web.config文件,将重写规则的根路径替换为/example/子目录路径即可。

第三步:清理缓存与残留错误路径

  1. 能正常登录后台后,先进入「设置-常规」页面,确认站点地址、WordPress地址均为带/example的正确值,哪怕值看起来正确也点击一次「保存更改」,会自动触发WordPress刷新重写规则。
  2. 全量清理缓存:包括服务器端缓存、WordPress缓存插件生成的缓存、CDN缓存,以及本地浏览器缓存,之前的跳转如果是301永久重定向,普通刷新会优先读本地缓存,必须清缓存或者用无痕模式测试。
  3. 排查数据库残留旧地址:如果部分文章、静态资源还在引用根目录路径,用数据库搜索替换工具,将库中所有https://example.com/的错误地址批量替换为https://example.com/example/,操作前务必备份数据库。

第四步:特殊场景排查

如果以上操作都做完还是有问题,逐一核对以下配置:

  • 检查是否配置了反向代理、CDN回源规则,确认规则没有在转发时丢弃/example子目录路径
  • 检查当前启用主题的functions.php文件、自定义插件文件中是否硬编码了根目录路径常量
  • 检查是否有安全插件、跳转插件配置了强制跳转到根目录的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:57:32