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

启用WordPress多站点后出现ERR_TOO_MANY_REDIRECTS错误的求助

WordPress子目录多站点后台ERR_TOO_MANY_REDIRECTS问题修复

问题描述

主站点后台http://54.183.207.102/wp-admin可正常访问,但子目录站点后台http://54.183.207.102/site1/wp-admin触发ERR_TOO_MANY_REDIRECTS错误,浏览器检测到多次重定向循环。

当前配置信息

.htaccess 代码

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Add a trailing slash to /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]
# END WordPress

wp-config.php 代码

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );

define( 'WP_AUTO_UPDATE_CORE', 'minor' );
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', '54.183.207.102' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
define('COOKIE_DOMAIN', false);
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
/* That's all, stop editing! Happy publishing. */

错误原因

  1. 重定向规则冲突:现有.htaccess中的规则对多站点路径处理逻辑有误,导致子目录后台请求被反复重定向。
  2. 全局URL设置干扰:动态定义的WP_HOME和WP_SITEURL会覆盖子站点的独立URL配置,引发路径匹配错误。
  3. Cookie配置异常:部分Cookie参数设置混乱,干扰多站点的会话识别,加重重定向循环。

修复步骤

1. 替换.htaccess为标准多站点配置

用以下代码覆盖现有.htaccess内容,确保子站点路径被正确解析:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Add trailing slash to wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

# Handle multisite uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# Skip existing files/directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Route multisite core files
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

2. 调整wp-config.php配置

  • 删除全局的WP_HOME和WP_SITEURL定义(多站点下这些参数由数据库自动管理):
    // 移除以下两行
    // define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
    // define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
    
  • 简化Cookie配置,统一路径参数:
    define('COOKIE_DOMAIN', '');
    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIEPATH', '/');
    define('SITECOOKIEPATH', '/');
    

3. 清除浏览器缓存与Cookie

强制清除当前浏览器的缓存及该站点相关Cookie,避免旧的重定向缓存或无效会话残留。

4. 验证子站点数据库配置

登录主站点后台,进入网络管理 > 站点 > site1 > 编辑,确认子站点的**站点地址(URL)**为http://54.183.207.102/site1,配置无误。

验证修复

完成上述步骤后,重新访问http://54.183.207.102/site1/wp-admin,检查重定向错误是否消除。若问题持续,可查看wp-content/debug.log文件,根据日志中的具体错误信息进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:22:02