如何阻止EC2上AMIMOTO WordPress站点HTTP自动跳转到HTTPS
解决AMIMOTO WordPress环境下HTTP强制重定向到HTTPS的问题
我刚好对AMIMOTO的WordPress环境比较熟悉,这种无证书却被强制跳转到HTTPS的情况,通常来自几个常见的配置点,咱们一步步排查解决:
1. 检查WordPress站点基础设置
首先尝试登录你的WordPress后台(如果还能通过http://XXX.XXX.XXX.XXX/wp-admin访问的话),找到设置 > 常规:
- 查看「WordPress地址(URL)」和「站点地址(URL)」,如果这两个地址是
https://XXX.XXX.XXX.XXX,直接改成http://XXX.XXX.XXX.XXX,保存设置。 - 如果后台因重定向无法访问,你可以通过数据库修改:登录EC2的数据库(比如用phpMyAdmin或命令行
mysql),找到wp_options表,修改siteurl和home这两个选项的值为HTTP地址。
2. 清理.htaccess文件中的重定向规则
AMIMOTO默认会在网站根目录(一般是/var/www/html)生成.htaccess文件,里面可能包含强制HTTPS的规则:
- 登录EC2实例(通过SSH),进入网站根目录:
cd /var/www/html - 编辑
.htaccess文件:nano .htaccess - 找到类似下面的规则,删掉或者用
#注释掉:RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - 保存退出(nano里按
Ctrl+O,回车,再Ctrl+X)
3. 检查Nginx配置中的重定向
AMIMOTO用Nginx作为前端服务器,可能在Nginx配置里加了强制HTTPS的规则:
- 进入Nginx配置目录,比如
cd /etc/nginx/conf.d/或者cd /etc/nginx/sites-available/ - 编辑对应站点的配置文件(比如
default.conf) - 查找有没有类似下面的代码,删掉或者注释:
或者带条件的:return 301 https://$host$request_uri;if ($scheme != "https") { return 301 https://$host$request_uri; } - 重启Nginx生效:
sudo systemctl restart nginx
4. 禁用强制HTTPS的插件
有些WordPress安全类插件(比如Really Simple SSL、Wordfence等)会自动开启强制HTTPS:
- 如果能登录后台,到插件 > 已安装插件,找到这类插件,点击「禁用」。
- 如果后台无法访问,通过SSH进入网站根目录的
wp-content/plugins/文件夹,把对应插件的文件夹重命名(比如really-simple-ssl改成really-simple-ssl-disabled),这样插件就会被禁用。
5. 检查wp-config.php中的强制SSL设置
有时候wp-config.php里会被添加强制SSL的常量:
- 进入网站根目录,编辑
wp-config.php:nano wp-config.php - 查找是否有以下两行,如果有,改成
false或者直接删除:define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true); - 保存退出。
完成以上步骤后,再访问http://XXX.XXX.XXX.XXX,应该就不会被重定向到HTTPS了。如果还有问题,可以清除浏览器缓存(因为301重定向会被浏览器缓存)再测试。
内容的提问来源于stack exchange,提问作者mitsuki




