您不能使用 ErrorDocument 指令将引发错误的站点的路径附加到显示的错误页面的 URL。但是,当您使用 PHP 时,您可以使用$_SERVER["REDIRECT_URL"]
错误处理脚本中的全局值。
有关详细信息,请参阅http://httpd.apache.org/docs/current/custom-error.html#variables:
重定向到另一个 URL 可能很有用,但前提是可以传递一些信息,然后这些信息可以用来更清楚地解释或记录错误情况。
为了实现这一点,当发送错误重定向时,将设置额外的环境变量,这些环境变量将从提供给原始请求的标头中生成,方法是在原始标头名称前加上“REDIRECT_”。这为错误文档提供了原始请求的上下文。
例如,除了更常见的环境变量之外,您可能还会收到以下内容。
REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/jpeg, image/png
REDIRECT_HTTP_USER_AGENT=Mozilla/5.0 Fedora/3.5.8-1.fc12 Firefox/3.5.8
REDIRECT_PATH=.:/bin:/usr/local/bin:/sbin
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=client.example.com
REDIRECT_SERVER_NAME=www.example.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/2.2.15
REDIRECT_URL=/cgi-bin/buggy.pl
REDIRECT_ 环境变量是根据重定向之前存在的环境变量创建的。它们使用 REDIRECT_ 前缀重命名,即 HTTP_USER_AGENT 变为 REDIRECT_HTTP_USER_AGENT。
REDIRECT_URL、REDIRECT_STATUS 和 REDIRECT_QUERY_STRING 保证被设置,并且只有当它们在错误条件之前存在时才会设置其他标头。
如果 ErrorDocument 目标是外部重定向(以 http: 之类的方案名称开头的任何内容,即使它引用与服务器相同的主机),这些都不会设置。