检查访问状态与错误页,核心是依次确认三件事:服务器有没有返回响应、返回的状态码是什么、错误页是服务器真实返回还是被前端伪装。最直接的办法是用浏览器开发者工具或命令行工具请求目标地址,读取响应头中的状态码,再根据状态码判断问题出在解析、服务器、程序还是页面内容。以下清单按从外到内的顺序排列,每项都说明查什么、怎么查、结果说明什么。
要查什么:域名是否指向了正确的服务器 IP,以及服务器端口是否可达。
怎么查:在命令行执行 nslookup 你的域名 或 dig 你的域名,看返回的 A 记录或 CNAME 记录是否与你的主机商提供的一致。再用 ping 你的域名 或 curl -I http://你的域名 测试连通性。
结果说明什么:如果解析结果为空或指向陌生 IP,问题在 DNS 配置;如果能解析但连接超时,问题可能在服务器未启动、防火墙拦截或端口未开放。这一步排除的是“根本连不上”,它和后面要看的 HTTP 状态码是两回事。
要查什么:服务器对请求返回的三位状态码。
怎么查:用浏览器打开页面,按 F12 进入网络面板刷新,查看该请求的 Status 列;或在命令行执行 curl -I https://你的域名/目标路径,只取响应头。
结果说明什么:常见状态码的含义如下。
200:请求成功,页面内容正常返回。若页面显示异常,问题在内容层而非访问层。301 / 302:发生跳转。要检查跳转目标是否正确,多次跳转可能拖慢访问。403:服务器拒绝访问,常见于目录权限、IP 限制或防盗链设置。404:请求的路径不存在。可能是链接写错、文件被删或伪静态规则失效。500:服务器内部错误,通常指向程序报错、数据库连接失败或配置语法错误。502 / 504:网关错误或超时,常见于反向代理后的后端服务未响应。如果返回的是 200 但页面写着“404 未找到”,说明这是前端或程序自定义的错误页,不是服务器真实状态,排查时要回到程序日志。
要查什么:错误页的响应状态码与页面文案是否一致。
怎么查:对显示错误提示的地址单独执行 curl -I,看状态码。再查看页面源代码,确认错误提示是服务器输出还是 JavaScript 渲染出来的。
结果说明什么:状态码为 404 且页面提示找不到,属于真实 404,需要检查链接或补建页面。状态码为 200 却显示错误提示,属于软 404,搜索引擎可能仍会收录该地址,应让程序在内容不存在时返回 404。状态码为 500 且页面只显示通用错误,需要去服务器错误日志中找具体报错行。
要查什么:访问日志中的请求记录和错误日志中的报错信息。
怎么查:在主机控制面板或命令行中打开访问日志,搜索出问题的 URL,看它返回的状态码和请求时间;再打开错误日志,看同一时间点是否有 PHP、数据库或权限相关报错。
结果说明什么:访问日志能确认错误发生的频率和来源;错误日志能指出具体文件和行号。如果日志中没有任何该请求的记录,说明请求根本没到达服务器,应回到第一步检查解析和网络。
要查什么:错误是否只出现在特定网络、设备或登录状态下。
怎么查:分别用手机流量、不同浏览器、无痕窗口和未登录状态访问同一地址,对比结果。
结果说明什么:如果只有某个网络打不开,可能是本地 DNS 缓存或网络策略问题;如果只有登录后出错,问题在权限或会话逻辑;如果所有环境都返回同一状态码,问题在服务器端。这一步的作用是缩小范围,避免把本地网络问题误判为网站故障。
完成以上检查后,下一步是拿着确定的状态码和日志报错行去对应处理:解析问题改 DNS,权限问题改目录或规则,程序报错改代码或配置。如果状态码正常但页面内容仍不对,再转向内容与模板层面的排查。