Apache服务器中第二个VHost跳转至主站点问题排查
Apache虚拟主机二级域名跳转异常问题排查与解决
问题说明
配置Apache虚拟主机后,二级站点reporting.mydev.site始终跳转到主站点mydev.site,使用Ubuntu系统下的Apache服务,相关配置文件如下:
主站点.conf文件
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mydev.site DocumentRoot /var/www/mydev.site/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www> AllowOverride All </Directory> RewriteEngine on RewriteCond %{SERVER_NAME} =mydev.site RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
二级站点.conf文件
<VirtualHost *:80> ServerName reporting.mydev.site ServerAdmin webmaster@localhost DocumentRoot /var/www/reporting.mydev.site/public_html ServerAlias www.reporting.mydev.site ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
排查与修复步骤
- 确认二级站点配置已启用:执行
sudo a2ensite reporting.mydev.site.conf启用配置,随后重启Apache服务:sudo systemctl restart apache2 - 验证DNS解析:确保
reporting.mydev.site的DNS记录指向正确服务器IP,本地测试可修改/etc/hosts添加映射:[服务器IP] reporting.mydev.site - 补全二级站点HTTPS配置:主站点存在HTTP强制跳转HTTPS规则,若二级站点未配置HTTPS,可能被主站点默认虚拟主机捕获。需为二级站点添加HTTPS虚拟主机配置,同时确保SSL证书包含该二级域名(使用通配符或多域名证书),也可在二级站点的80端口配置中添加对应HTTPS跳转规则
- 调整配置加载优先级:Apache会优先加载名称靠前的配置文件,若主站点配置文件名称排序在二级站点之前,可能捕获未匹配请求。可修改二级站点配置文件名(例如前缀设为
001-,主站点为000-),确保二级站点配置被正确识别 - 清除浏览器缓存:浏览器可能缓存了旧跳转规则,尝试用隐私模式访问或清除缓存后重试
内容的提问来源于stack exchange,提问作者Noel Garcia
相关产品推荐
相关产品推荐

