我的搜索一无所获...我试图用以下行将响应的 403 Forbidden 状态更改为 404 Not Found 状态:
Header set Status-Line "HTTP/1.1 404" "expr=%{REQUEST_STATUS} == 403"
但是,这没有效果。我怀疑这可能是因为 Apache 实际上没有使用 Status-Line 标头,尽管它是 HTTP 规范的一部分。那么这可能吗?我试图使用 Header 指令来完成此操作,而不是重写,因为这似乎是更好的方法。
答案1
Header 指令只能用于设置 HTTP 标头。恐怕 HTTP 请求的响应的第一行实际上不是 HTTP 标头,因此无法进行修改。
一种可能的方法是(未经测试)执行以下操作:
错误文档 403 /cgi-bin/my-forbidden.cgi
并让该 CGI 设置 404 返回代码以及您希望显示的文本。
否则,您需要在 mod_{perl|lua|etc} 中编写自己的处理程序。