在 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,然后让它完成它的工作。