网站迁移时如何快速检测URL重定向并导出源与目标地址清单?
重定向清单获取可行方案
方案1:从Apache侧直接提取(优先选择,无需额外爬取)
1.1 日志提取法
- 先确认Apache访问日志是否配置了
%{Location}o(跳转目标响应头)和%>s(最终响应状态码)字段,若没有可临时修改httpd.conf配置新增自定义日志格式:
配置生效后运行1-2天,覆盖绝大多数用户访问请求即可。LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Location}o\"" redirect_check_log CustomLog /var/log/apache2/redirect_check.log redirect_check_log - 用命令提取所有3xx重定向的源、目标地址并去重:
grep " 30[1278] " /var/log/apache2/redirect_check.log | awk '{print $7, $NF}' | sort | uniq > redirect_list.txt - 注意:该方法仅能覆盖实际被触发过的重定向规则,从未被访问过的规则会遗漏。
1.2 静态配置扫描法
如果你的重定向规则都写在.htaccess或Apache配置文件中,可直接批量扫描提取规则:
# 扫描所有站点目录下的.htaccess文件 find /你的站点根目录路径 -name ".htaccess" | xargs grep -E "Redirect|RewriteRule" > htaccess_redirect_raw.txt # 扫描Apache主配置、虚拟主机配置文件 grep -rE "Redirect|RewriteRule" /etc/apache2/sites-available/ >> htaccess_redirect_raw.txt
扫描完成后人工整理成源地址-目标地址的对应清单即可,该方法可以拿到所有静态配置的重定向规则,不会遗漏。
方案2:爬虫检测方案(覆盖全量路径,适配无配置权限、规则分散的场景)
前置准备
先拿到现有站点的全量URL清单,可从历史访问日志、站点地图sitemap、历史CMS后台导出数据中获取,没有清单的话可以先用轻量爬虫爬取全站所有可访问路径。
检测脚本示例
用Python requests实现批量检测,关闭自动重定向直接读取跳转目标:
import requests # 自定义UA避免被反爬拦截 REQUEST_HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } if __name__ == "__main__": # 读取全量URL清单,一行一个地址 with open("all_site_urls.txt", "r", encoding="utf-8") as f: url_list = [item.strip() for item in f.readlines() if item.strip()] result = [] for idx, source_url in enumerate(url_list): print(f"正在检测第{idx+1}/{len(url_list)}个地址:{source_url}") try: resp = requests.get( source_url, headers=REQUEST_HEADERS, allow_redirects=False, timeout=15 ) if 300 <= resp.status_code < 400: target_url = resp.headers.get("Location", "无跳转目标") result.append(f"{source_url},{target_url},{resp.status_code}") except Exception as e: result.append(f"{source_url},检测失败,{str(e)}") # 导出为CSV格式清单 with open("redirect_check_result.csv", "w", encoding="utf-8-sig") as f: f.write("源地址,目标地址,状态码/错误信息\n") f.write("\n".join(result))
该方案除了可以拿到完整的重定向映射关系外,还可以同时检测是否存在循环重定向、跳转死链等异常问题。
内容的提问来源于stack exchange,提问作者ANormalUser
相关产品推荐
相关产品推荐

