移动端访问sub01.example.com跳转至www.example.com/subdomains/01解决咨询
问题原因
- Web服务端User-Agent匹配规则异常:Nginx、Apache等Web服务的重定向规则支持按访问设备的UA标识区分响应,你的配置大概率存在针对移动端UA的全局转发规则,将所有移动端请求统一转发到主域名下的子目录,未针对子域名场景做特殊适配。
- 移动端浏览器遗留重定向缓存:如果早期调试时返回过301永久重定向,该记录会被浏览器长期缓存。桌面端可能在配置修正后已经访问过生效后的站点,而移动端还在读取过期的缓存重定向规则。
- 站点程序内置跳转逻辑错误:若使用CMS系统或自定义了移动端适配代码,可能硬编码了移动端跳转路径为主域名下的子目录,未适配子域名部署场景。
- 子域名根目录绑定错误:如果子域名的站点根目录没有直接绑定到
example/subdomains/01,而是绑定到了上层的example目录,Web服务的目录解析规则会自动将子域名请求指向对应子目录路径,部分服务端对移动端请求的解析优先级更高会优先触发该问题。
解决步骤
- 修正Web服务配置
- Nginx环境:检查
sub01.example.com对应的server块配置,确认根目录配置为root /你的服务器实际路径/example/subdomains/01;,删除所有包含if ($http_user_agent ~* (mobile|android|iphone|ipad))类的移动端全局重定向规则。 - Apache环境:检查子域名对应的虚拟主机配置,确认
DocumentRoot指向到01目录而非上层example目录,同时删除站点根目录.htaccess文件中所有UA相关的重定向规则。
- Nginx环境:检查
- 清理移动端缓存
测试时优先使用移动端隐私浏览模式访问,或者手动清空浏览器全部缓存数据,排除301永久重定向缓存干扰。 - 修正站点程序配置
检查站点代码中是否存在移动端UA判定跳转逻辑,将跳转目标域名修改为sub01.example.com而非主域名子目录路径。如果使用CMS系统,到后台站点设置页将站点URL修改为https://sub01.example.com,不要填写主域名子目录路径。 - 权限校验
你当前的rwxr-x---目录权限配置没有问题,只要Web服务运行用户(如www-data)属于对应目录的用户组,不需要额外调整权限。
内容的提问来源于stack exchange,提问作者JohnP
相关产品推荐
相关产品推荐

