检查访问状态与错误页,核心是分别确认三件事:页面能否正常返回、返回的是哪一类状态码、错误页是否由站点自己接管。最直接的做法是用浏览器开发者工具看网络请求,再用命令行工具复核,最后检查错误页配置。只看到“打不开”并不等于服务器故障,也可能是DNS、证书、重定向或权限问题。
访问状态由HTTP状态码表达。常见情况可以按下面判断:
200:页面正常返回,若内容不对,问题在页面本身或缓存,不在访问链路。301或302:发生了跳转。连续多次跳转可能拖慢访问,也可能跳到错误地址。403:服务器拒绝访问,常见于目录权限、访问规则或防盗链设置。404:请求的地址不存在,可能是链接写错、文件被删或重写规则失效。500:服务器内部出错,通常要查程序日志、数据库连接或运行环境。502或504:网关无法从后端取得有效响应,常见于后端进程停止、超时或负载过高。这些状态码只是线索,不是结论。同一个404可能来自链接错误,也可能来自伪静态规则没有生效,需要结合请求地址和服务器配置继续核对。
浏览器适合观察真实用户看到的页面,命令行适合排除浏览器缓存和插件干扰。两者结果不一致时,优先怀疑缓存、CDN或本地网络。
curl -I https://你的域名/目标路径,只看响应头。curl -IL https://你的域名/目标路径,观察最终落点。这个步骤适用于已有页面或项目的排查。如果站点刚上线,还要确认域名解析是否已经生效;如果站点运行已久突然异常,优先查最近的配置改动、证书到期和服务器资源占用。
很多站点只做了一个好看的错误页,却让它以200状态返回。这会让访问者和搜索引擎都误以为页面正常。检查时看两点:
curl -I请求同一个不存在的地址,状态码是否仍为404。如果错误页返回200,应调整服务器或程序配置,让自定义错误页保留原始状态码。Nginx中常用error_page 404 /404.html;这类配置,但具体写法取决于运行环境,修改前先备份原配置。对于500类错误,错误页不应暴露堆栈、数据库账号或文件路径,只给用户一个可返回的入口即可。
不同排查动作的成本差别很大,建议按下面顺序推进:
curl确认返回码。若发现异常跳转,检查重定向规则。这样排序的原因是:越靠前的检查越容易回退,越靠后的操作越可能影响线上服务。若站点已有访问量,修改服务器配置或重启服务前,应确认有回滚方案。
完成一轮检查后,你会得到一组事实:哪些地址返回异常、异常状态码是什么、错误页是否接管、问题是否可复现。根据结果选择动作:状态码错误就修配置或链接;跳转异常就清理重定向链;错误页返回200就修正状态码;只有日志出现明确报错时才改程序。下一步,先挑一个可稳定复现的异常地址,按上面的顺序完整走一遍,再决定是否扩大排查范围。