500 Internal Server Error 表示服务器遇到了意外情况,无法完成请求。当没有更具体的 5xx 状态码适用时,它就是服务器端故障的统称。
从外部几乎永远看不到原因,因为服务器不应透露内部细节。真正的原因记录在服务器错误日志、应用日志或错误跟踪服务中:未捕获的异常、PHP 致命错误、数据库连接失败、.htaccess 中的语法错误,或者服务器无法识别的配置指令。
客户端无法修复 500。如果问题是暂时的,稍后重试也许能成功。
响应示例
HTTP
HTTP/1.1 500 Internal Server Error
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
Content-Length: 273
Connection: close
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
</body></html> SEO 与重定向检测
Google 起初会把 5xx 错误视为暂时性问题:Googlebot 放慢抓取速度,已编入索引的页面也会在索引中保留一段时间。如果错误持续存在,这些 URL 就会被移除。如果 robots.txt 本身返回 5xx 错误,Google 会暂时把整个网站视为禁止抓取并暂停抓取;如果错误持续超过 30 天,Google 会改用上次缓存的 robots.txt 副本。
重定向链中出现 500,往往源于有问题的重写规则。例如,当重写规则导致超过 10 次内部重定向时,Apache 会返回 500(“Request exceeded the limit of 10 internal redirects”)。这种内部循环永远不会显示为 3xx 跳;重定向循环检测能找出 URL 之间的循环,而内部循环则会表现为 500。
常见原因与使用场景
- 应用中出现未捕获的异常或致命错误(PHP、Node.js、Python 等)。
.htaccess或服务器配置中有无效的指令或语法错误。- 脚本的文件权限或所有者设置错误。
- 资源耗尽(例如超出 PHP 的
memory_limit),或数据库连接失败。 - 重写规则在内部形成循环。