Ubuntu 22.04 LAMP环境下WordPress新域名301重定向至旧域名求助
问题:Ubuntu 22.04 LAMP环境下WordPress站点301重定向异常
在本地配置/etc/hosts映射域名后,访问http://www.domain-2.com会被301强制重定向到http://www.domain-1.com,但http://www.domain-2.com/phpmyadmin可正常访问。
当前配置信息
/etc/hosts 文件内容
127.0.0.1 localhost 127.0.0.2 www.domain-1.com 127.0.0.3 www.domain-2.com
/etc/apache2/site-available/domain-2.conf 文件内容
<VirtualHost *.80> ServerName domain-2.com ServerAlias www.domain-2.com ServerAdmin webmaster@localhost DocumentRoot /var/www/domain-2 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR)/access.log combined <Directory /var/www/domain-2/> AllowOverride All </Directory> </VirtualHost>
已执行操作
- 启用
a2enmod rewrite模块 apache2ctl configtest返回语法正常- 通过
a2ensite domain-2.conf启用站点 - 执行
systemctl reload apache2重新加载服务
已尝试的解决方法
- 清除浏览器缓存
- 重启apache2服务
- 重新加载apache2服务
- 新建.conf文件
- 执行
/bin/systemctl restart systemd-hostnamed - 删除空的.htaccess文件
- 添加WordPress默认内容至.htaccess文件
进一步排查与解决步骤
1. 修正VirtualHost监听配置错误
你的domain-2.conf中<VirtualHost *.80>格式错误,正确写法应为<VirtualHost *:80>(使用冒号而非星号)。修改后重新加载配置:
sudo nano /etc/apache2/site-available/domain-2.conf # 将 *.80 改为 *:80 sudo apache2ctl configtest sudo systemctl reload apache2
2. 禁用Apache默认站点
默认的000-default.conf可能会抢占未匹配的请求,执行以下命令禁用:
sudo a2dissite 000-default.conf sudo systemctl restart apache2
3. 检查WordPress站点核心配置
方法1:后台修改
直接通过IP访问domain-2的WordPress后台(http://127.0.0.3/wp-admin),进入设置 → 常规,确认:
- WordPress地址(URL):
http://www.domain-2.com - 站点地址(URL):
http://www.domain-2.com
方法2:数据库修改
若无法登录后台,直接修改WordPress数据库:
sudo mysql -u root -p # 切换到domain-2对应的数据库 USE domain2_wordpress_db; # 更新站点URL配置 UPDATE wp_options SET option_value = 'http://www.domain-2.com' WHERE option_name IN ('siteurl', 'home');
4. 调整Apache站点加载顺序
Apache按配置文件名的字母顺序加载站点,若domain-1.conf优先级更高且包含全局重定向规则,可能干扰domain-2。给domain-2的配置文件重命名以提升加载优先级:
sudo mv /etc/apache2/site-available/domain-2.conf /etc/apache2/site-available/002-domain-2.conf sudo a2dissite domain-2.conf sudo a2ensite 002-domain-2.conf sudo systemctl restart apache2
5. 排查全局重定向规则
检查Apache全局配置中是否存在强制重定向规则:
# 检查主配置文件 cat /etc/apache2/apache2.conf | grep -i rewrite # 检查conf-available目录下的配置 cat /etc/apache2/conf-available/*.conf | grep -i rewrite
若发现针对域名的RewriteRule,需删除或修改为针对特定站点的规则。
6. 测试重定向来源
使用curl命令查看重定向的响应头,确认重定向是来自Apache还是WordPress:
curl -v http://www.domain-2.com
从响应头的Location字段和服务器标识,可定位重定向的触发源。
7. 修复目录权限
确保domain-2的站点目录权限正确,避免WordPress因权限问题读取错误配置:
sudo chown -R www-data:www-data /var/www/domain-2 sudo chmod -R 755 /var/www/domain-2
内容的提问来源于stack exchange,提问作者luknij
相关产品推荐
相关产品推荐

