![是否可以使用 Apache 的 Header 指令设置 Status-Line 标头?](https://linux22.com/image/688574/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20Apache%20%E7%9A%84%20Header%20%E6%8C%87%E4%BB%A4%E8%AE%BE%E7%BD%AE%20Status-Line%20%E6%A0%87%E5%A4%B4%EF%BC%9F.png)
我的搜索一无所获...我试图用以下行将响应的 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} 中编写自己的处理程序。