设置没有CGI的响应状态码

在Apache中设置自定义响应代码而不使用CGI的最简洁的方法是什么?

最近几天我想这样做。 我第一次退休的networking应用程序。 状态码410(不见了)似乎是最合适的。 我想出了这个使用mod_rewrite的片段:

ErrorDocument 410 /retired.html RewriteEngine on RewriteCond %{REQUEST_FILENAME} !retired.html RewriteRule . - [G] 

retired.html是显示给其他任何人的消息,所以他们明白发生了什么事。

现在我有一个只能通过HTTPS工作的Web服务API。 对于HTML方面,我已经重写规则redirect从HTTP到HTTPS,但对于API访问,我宁愿不安全的请求会得到一个硬错误。 (某些客户端HTTP库遵循GET上的redirect,所以它似乎工作,然后在POST,PUT或DELETE上以奇怪的方式失败。)

410(走)不适合这个,403(禁止)更近,但仍然感觉不对。 显然3xx代码是完全错误的。

纯粹在Apache中,是否没有办法设置请求的响应状态码?

如果需要SSL,403是Web服务器响应的正确代码。

如果我是你的话,我只需在80端口的vhost中设置SSLRequireSSL ,然后让它执行。