用 curl -I 命令可准确判断 Apache 重定向类型:第一行状态行显示 HTTP/1.1 301 Moved Permanently 为永久跳转,HTTP/1.1 302 Found 或 Moved Temporarily 为临时跳转;需同时验证 Location 头是否正确且参数完整保留。
直接用 curl -i 命令就能准确测出 apache 返回的是 301 还是 302,关键不是看浏览器跳没跳,而是看响应头里写的 http 状态码。
用 curl 查看原始响应头
在服务器或本地终端运行:
curl -I http://old-site.com
输出中第一行就是状态行,例如:
-
HTTP/1.1 301 Moved Permanently→ 成功配置了永久重定向 -
HTTP/1.1 302 Found或HTTP/1.1 302 Moved Temporarily→ 当前是临时跳转
注意:加 -I 只获取响应头,不下载正文,速度快、结果干净;不要用 -i 或直接访问,容易被页面内容干扰判断。
验证带路径和参数的跳转
真实场景中 URL 往往带路径或查询字符串,比如 /blog/post?id=123。测试时要覆盖这类情况:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
curl -I "http://old-site.com/blog/post?id=123"
重点检查两点:
- 响应头第一行是否为
301或302 -
Location:头是否包含预期的新地址,且路径与参数是否完整保留(如https://new-site.com/blog/post?id=123)
对比不同规则的实际效果
如果你同时配置了多种跳转(比如强制 HTTPS、www 统一、域名迁移),它们的执行顺序会影响最终状态码。可分别测试:
- 访问
http://example.com→ 应返回301跳到https://example.com - 访问
http://www.example.com→ 若规则写成R=302,就会返回302,说明不是永久跳转 - 访问
https://example.com/admin(无尾斜杠)→ Apache 默认会返回301跳到/admin/(由DirectorySlash On控制)
辅助验证工具推荐
除了命令行,还可借助轻量工具交叉确认:
- httpstatus.io:粘贴旧 URL,它会显示完整跳转链和每步状态码
- Screaming Frog SEO Spider(免费版可扫 500 个 URL):批量检查整站重定向类型,识别混用 301/302 的异常页面
- 浏览器开发者工具 → Network 标签 → 刷新页面 → 点击跳转请求 → 查看 Status 列和 Headers 中的
Location
只要响应头明确写着 301 或 302,就代表 Apache 已按配置发出对应指令。搜索引擎只认这个,而不是你肉眼看到“跳过去了”。

















