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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:05:37