不使用 CGI 来设置响应状态代码

不使用 CGI 来设置响应状态代码

在 Apache 中设置自定义响应代码的最简洁方法是什么没有诉诸 CGI?

最近几天我两次想这样做。第一次是我停用了一个 Web 应用程序。状态代码 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 内部,设置请求的响应状态代码?

答案1

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

如果我是你,我只会SSLRequireSSL为该路径设置端口 80 vhost,然后让它完成它的工作。

相关内容