WordPress多站点管理链接缺斜杠致404无法访问问题求助
解决WordPress多站点管理页面404且URL丢失斜杠的问题
你遇到的核心问题是多站点管理URL重定向时丢失了wordpress和wp-admin之间的斜杠,导致404错误。结合你用Duplicator从WAMP迁移的背景,我整理了几个针对性的排查和修复步骤:
1. 检查并修正wp-config.php中的多站点配置
先打开站点根目录下的wp-config.php文件,重点确认多站点相关配置的路径格式:
- 确保
WP_SITEURL和WP_HOME的设置末尾带斜杠:define('WP_SITEURL', 'https://blablabla.com/wordpress/'); define('WP_HOME', 'https://blablabla.com/wordpress/'); - 检查多站点核心配置,
PATH_CURRENT_SITE必须正确设置为带末尾斜杠的子目录路径:define('DOMAIN_CURRENT_SITE', 'blablabla.com'); define('PATH_CURRENT_SITE', '/wordpress/'); // 这里的斜杠不能少 define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
如果这些配置里的路径缺失斜杠,很容易触发错误的重定向逻辑。
2. 重新生成多站点的.htaccess规则
Duplicator迁移后,.htaccess的重写规则可能和新环境不匹配。先备份当前的.htaccess文件,然后替换为WordPress官方的多站点子目录版规则:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] # 给/wp-admin添加末尾斜杠 RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
注意把RewriteBase /wordpress/里的路径改成你实际的子目录路径,确保末尾带斜杠。
3. 排查Duplicator迁移的路径替换问题
Duplicator在迁移时会替换数据库里的旧URL,但偶尔会因为匹配逻辑问题导致路径拼接错误:
- 登录phpMyAdmin,检查
wp_options表(多站点还要检查wp_blogs、wp_site表),搜索siteurl、home、path这些字段,确认所有URL和路径都带有正确的斜杠,没有出现wordpresswp-admin这类错误拼接。 - 如果发现错误内容,直接在数据库里修正;如果你能正常访问普通wp-admin页面,也可以通过“设置-常规”页面重新设置站点URL(多站点需要超级管理员权限)。
4. 清除缓存并重置永久链接
缓存残留可能导致旧的重定向规则生效,需要做以下操作:
- 清除浏览器缓存,或者用无痕模式访问多站点管理页面测试。
- 登录普通wp-admin后台,进入“设置-永久链接”,不需要修改任何设置,直接点击“保存更改”,让WordPress重新生成重写规则(这会自动更新
.htaccess,前提是服务器允许写入该文件)。
5. 检查服务器层面的重定向配置(可选)
如果以上步骤都没解决,可能是服务器配置的问题:
- 对于Apache,确保
mod_rewrite模块已启用,并且站点虚拟主机配置里设置了AllowOverride All,允许.htaccess生效。 - 对于Nginx,要确保多站点的重写规则配置正确,示例如下:
location /wordpress/ { try_files $uri $uri/ /wordpress/index.php?$args; }
按这些步骤逐一排查,应该能解决URL丢失斜杠导致的404问题。
内容的提问来源于stack exchange,提问作者zac1987
相关产品推荐
相关产品推荐

