通过AMI复制EC2实例后均跳转至同一域名的问题咨询
问题解答:复制EC2 WordPress实例后跳转至原域名的问题
首先明确说:这种情况完全不正常,而且和Route 53的配置没有关系——问题出在你制作的AMI里包含了原WordPress站点的核心配置,复制出来的新实例里,WordPress本身就被设置成强制跳转到原域名,和Route 53的解析规则无关。
为什么会出现这个问题?
WordPress会把「站点URL」和「WordPress地址」这两个关键配置存储在数据库(或wp-config.php)里,而AMI是整个EC2实例的完整镜像——包括系统文件、数据库内容、WordPress配置。所以当你复制实例时,新实例的WordPress完全继承了原实例的域名配置,不管你访问新实例的IP是什么,它都会自动跳转到配置好的原域名。
解决方法:修改新实例的WordPress域名配置
根据你的访问情况,选下面任意一种方法即可:
方法1:通过WordPress后台修改(最简便)
如果新实例的公网IP能正常打开后台(比如http://[新实例公网IP]/wp-admin):
- 登录后台后,进入「设置」→「常规」页面
- 找到「WordPress地址(URL)」和「站点地址(URL)」,把它们改成新实例的公网IP,或者你打算给新实例绑定的新域名
- 点击「保存更改」,之后再访问新实例就不会跳转了
方法2:修改wp-config.php文件(后台无法访问时用)
如果访问后台也会强制跳转,直接修改配置文件:
- SSH连接到新的EC2实例
- 找到WordPress的根目录(通常是
/var/www/html,如果是Ubuntu用的Bitnami镜像,路径可能是/opt/bitnami/wordpress) - 编辑wp-config.php文件(比如用
sudo nano wp-config.php) - 在文件末尾添加以下两行代码,替换成你的新IP或域名:
define('WP_HOME','http://[新实例公网IP或新域名]'); define('WP_SITEURL','http://[新实例公网IP或新域名]'); - 保存退出后,重启Web服务:
- Apache:
sudo systemctl restart apache2 - Nginx:
sudo systemctl restart nginx - Bitnami环境:
sudo /opt/bitnami/ctlscript.sh restart apache
- Apache:
方法3:直接修改MySQL数据库(极端情况用)
如果上面两种方法都不行,直接改数据库:
- SSH连接到新实例,登录MySQL:
mysql -u [数据库用户名] -p(默认用户名通常是root,密码可以在wp-config.php里找DB_PASSWORD) - 切换到WordPress的数据库:
use [数据库名];(数据库名在wp-config.php的DB_NAME里) - 执行更新语句,替换成你的新IP或域名:
注意:如果你的WordPress数据库前缀不是UPDATE wp_options SET option_value = 'http://[新实例公网IP或新域名]' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'http://[新实例公网IP或新域名]' WHERE option_name = 'home';wp_(比如自定义了前缀),要把wp_options改成对应的前缀名,比如mywp_options - 退出MySQL:
exit;,然后重启Web服务即可
后续优化建议
以后制作AMI之前,最好先把WordPress的URL配置改成动态获取,或者添加一个启动脚本(EC2 User Data),让新实例启动时自动替换成自身的公网IP或指定域名,这样就不用每次复制实例都手动修改了。比如在User Data里写一段bash脚本,自动修改wp-config.php或数据库。
内容的提问来源于stack exchange,提问作者forJ
相关产品推荐
相关产品推荐

