WordPress IP与URL互跳陷入重定向循环问题求助
WordPress多站点IP转域名后重定向循环解决方法
问题背景
此前通过IP地址搭建WordPress多站点,绑定域名后修改wp-config.php中的站点URL,出现域名与IP地址互相跳转的重定向死循环,当前.htaccess配置如下:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 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] # WP Maximum Execution Time Exceeded <IfModule mod_php5.c> php_value max_execution_time 300 php_value upload_max_filesize 200M </IfModule>
解决步骤
1. 补全wp-config.php多站点配置
多站点模式下仅修改site_url不足以完全切换域名,需添加/修正以下常量:
// 主站点URL define('WP_HOME','https://你的域名'); define('WP_SITEURL','https://你的域名'); // 多站点核心配置 define('DOMAIN_CURRENT_SITE', '你的域名'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
同时需检查数据库:
wp_blogs表:将所有domain字段值替换为新域名- 各子站点对应的
wp_*_options表:将siteurl和home字段值替换为新域名
2. 修正.htaccess添加强制跳转规则
在现有配置开头添加IP转域名的强制跳转,切断循环源头:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 新增:强制将IP访问跳转到域名 RewriteCond %{HTTP_HOST} ^你的IP地址$ RewriteRule ^(.*)$ https://你的域名/$1 [R=301,L] 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] # WP Maximum Execution Time Exceeded <IfModule mod_php5.c> php_value max_execution_time 300 php_value upload_max_filesize 200M </IfModule>
3. 清除缓存
- 若能登录WordPress后台,清除站点缓存(含缓存插件的缓存)
- 清除本地浏览器缓存,或使用无痕模式测试,避免旧301缓存干扰
4. 检查服务器虚拟主机配置
- Apache:确保虚拟主机的
ServerName和ServerAlias仅设置为新域名,移除IP相关配置 - Nginx:确保
server块的server_name为新域名,添加IP访问的跳转规则
内容的提问来源于stack exchange,提问作者Lakhtar Kays
相关产品推荐
相关产品推荐

