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

WordPress后台锁定与重定向循环:无后台修改设置求助

解决WordPress改HTTPS后重定向循环无法登录的问题

这种重定向死循环的坑我之前在Heroku部署WordPress时也踩过,别慌,咱们一步步来搞定它!核心问题是WordPress没正确识别当前的HTTPS环境,或者数据库/配置里的地址还存在冲突,以下是几种无后台访问权限时的解决方法:

1. 修正wp-config.php配置(最优先尝试)

你之前只改了WP_SITEURL,但漏掉了几个关键配置,尤其是Heroku环境下的反向代理识别,这才导致重循环。打开你的wp-config.php文件,替换相关配置为:

// 设置正确的HTTPS站点地址
if (getenv("WORDPRESS_SITEURL")) {
    define('WP_SITEURL', 'https://some_app.herokuapp.com/');
    define('WP_HOME', 'https://some_app.herokuapp.com/');
} else {
    define('WP_SITEURL', 'https://some_app.herokuapp.com/');
    define('WP_HOME', 'https://some_app.herokuapp.com/');
}

// 强制后台和登录页使用HTTPS
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

// 关键:让WordPress识别Heroku的反向代理HTTPS请求
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

为什么之前没生效?因为Heroku的请求是通过代理转发到你的应用的,WordPress默认会认为当前是HTTP协议,所以不断把你重定向到HTTPS,形成循环。上面的代码就是告诉WordPress:如果代理传来的是HTTPS,就认定当前是HTTPS环境。

2. 直接修改数据库中的站点地址

如果wp-config改完还是不行,那大概率是数据库里还存着旧的HTTP地址。你可以通过phpMyAdmin(如果有访问权限)或者Heroku的数据库命令行来修改:

步骤:

  • 找到你的WordPress数据库,打开wp_options表(注意:如果你的表前缀不是wp_,要替换成实际前缀)
  • 找到option_name为siteurl和home的两条记录,把它们的option_value都改成https://some_app.herokuapp.com/

如果用MySQL命令行执行,代码如下:

UPDATE wp_options SET option_value = 'https://some_app.herokuapp.com/' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://some_app.herokuapp.com/' WHERE option_name = 'home';

3. 调整.htaccess文件(适用于Apache环境)

如果你的应用用的是Apache服务器,还可以通过.htaccess强制HTTPS跳转,同时适配Heroku的代理环境。替换你的.htaccess内容为:

RewriteEngine On
# 强制所有HTTP请求跳转到HTTPS(适配Heroku代理)
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]

# WordPress默认重写规则,不要动下面的
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

注意:

  • 如果你用的是Nginx,那需要调整Nginx配置文件,添加类似的HTTPS强制跳转规则,同样要注意X-Forwarded-Proto头的判断。

一般来说,先试第一种方法(修正wp-config)就能解决Heroku上的这个问题,因为核心是代理环境的HTTPS识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:53:43