本地WordPress站点登录时意外重定向问题求助
我在本地LAMP环境搭建了两个用于学习的WordPress站点,通过修改/etc/hosts配置了不同的回环地址来区分访问,hosts文件相关内容如下:
127.0.0.1 testsite1.com www.testsite1.com 127.0.0.5 duplicatetestsite.com www.duplicatetestsite.com
这两个站点的情况是:
- 分别部署在不同的文件夹下
- 使用独立的数据库,各自的
wp-config.php配置内容完全不同 - 为Apache配置了独立的虚拟主机文件
未登录时两个站点内容是有区别的(比如其中一个多了一篇测试文章),但当我尝试登录duplicatetestsite.com的后台时,会被自动重定向到testsite1.com的管理面板,这让我很困惑。
我已经做了以下排查工作:
- 核对了
duplicatetestsite.com的虚拟主机配置 - 确认两个站点确实连接了不同的数据库,配置文件没有混淆
以下是两个站点的Apache虚拟主机配置:
testsite1.com (127.0.0.1) 的虚拟主机配置
<VirtualHost 127.0.0.1:80> ServerName testsite1.com ServerAlias www.testsite1.com DocumentRoot /srv/www/wordpress <Directory /srv/www/wordpress> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Require all granted </Directory> <Directory /srv/www/wordpress/wp-content> Options FollowSymLinks Require all granted </Directory> </VirtualHost>
duplicatetestsite.com (127.0.0.5) 的虚拟主机配置
<VirtualHost 127.0.0.5:80> ServerName duplicatetestsite.com ServerAlias www.duplicatetestsite3.com DocumentRoot /var/www/wordpress3 <Directory /var/www/wordpress3> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Require all granted </Directory> <Directory /var/www/wordpress3/wp-content> Options FollowSymLinks Require all granted </Directory> </VirtualHost>
希望有人能帮我找出重定向的原因,以及解决方法,让我可以正常登录duplicatetestsite.com的后台。
解决建议
兄弟,我看了你的配置,发现几个可能的问题,按步骤来应该能解决:
1. 先修正虚拟主机的ServerAlias错误
你看duplicatetestsite.com的虚拟主机里,ServerAlias写的是www.duplicatetestsite3.com,明显和你的域名不符,这会导致访问www前缀的域名时可能出现配置匹配问题,先把它改成www.duplicatetestsite.com,然后重启Apache:
sudo systemctl restart apache2
2. 检查并更新克隆站点的URL配置(核心问题)
WordPress的登录重定向绝大多数情况是因为站点的URL设置不对——你克隆站点的时候,数据库里的siteurl和home字段大概率还是原站点testsite1.com的地址,这就会导致登录时自动跳回去。
有两种简单的修改方式:
- 方式一:直接修改wp-config.php
打开duplicatetestsite.com站点目录下的wp-config.php,在文件末尾(或者数据库配置部分之后)添加两行代码,强制指定站点URL:
define('WP_HOME','http://duplicatetestsite.com'); define('WP_SITEURL','http://duplicatetestsite.com');
保存后刷新页面,再尝试登录。
- 方式二:通过MySQL修改数据库
登录你的MySQL服务器,切换到克隆站点的数据库,执行以下SQL语句(如果你的表前缀不是wp_,记得替换成实际的前缀):
UPDATE wp_options SET option_value = 'http://duplicatetestsite.com' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'http://duplicatetestsite.com' WHERE option_name = 'home';
执行完退出MySQL,再测试登录。
3. 清除浏览器缓存和Cookie
有时候浏览器缓存了原站点的登录Cookie,也会导致重定向。建议直接清除testsite1.com和duplicatetestsite.com的Cookie,或者用隐私模式打开浏览器尝试登录。
4. 验证Apache配置是否生效
最后再确认下Apache的配置有没有语法错误,执行:
sudo apache2ctl configtest sudo systemctl reload apache2
如果输出Syntax OK,说明配置没问题。
另外再核对下两个站点的wp-config.php里的数据库名称、用户名、密码是不是真的不一样,确保没有连接错数据库。
按这个流程走下来,应该就能解决登录重定向的问题了!
备注:内容来源于stack exchange,提问作者paneer_curry

