在不借助 CGI的情况下,在 Apache 中设置自定义响应代码的最简洁方法是什么?
最近几天我有两次想这样做。我第一次退休网络应用程序。状态代码 410(消失)似乎是最合适的。我想出了这个片段使用 mod_rewrite:
ErrorDocument 410 /retired.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !retired.html
RewriteRule . - [G]
retired.html
是显示给从别处链接的任何人的消息,以便他们了解发生了什么。
现在我有一个只能通过 HTTPS 工作的 Web 服务 API。对于 HTML 端,我重写了从 HTTP 重定向到 HTTPS 的规则,但对于 API 访问,我宁愿不安全的请求出现硬错误。(一些客户端 HTTP 库遵循 GET 上的重定向,因此它似乎可以工作,然后在 POST、PUT 或 DELETE 上以奇怪的方式失败。)
410(消失)不适合这个,403(禁止)更接近,但仍然感觉不对。显然3xx代码是完全错误的。
有没有办法,纯粹在 Apache 中,为请求设置响应状态代码?
如果需要 SSL,403 是 Web 服务器响应的正确代码。
如果我是你,我会
SSLRequireSSL
为该路径设置端口 80 虚拟主机,然后让它执行它的操作。