apache - 如何让 Apache 完全拒绝一个目录的非 SSL

标签 apache .htaccess ssl virtualhost

我在 https://writeapp.me 有一个服务器只允许 SSL 连接。它位于 Chrome 和 Firefox HSTS 列表中,使用 HSTS header ,并包含一个重写规则以将任何 HTTP 请求重定向到 HTTPS。

此设置非常适合使用网络浏览器的临时用户,但现在我正在开发一个 API,我需要对一个路径的任何非 HTTPS 请求都拒绝并且不重定向.

该 API 将位于 https://writeapp.me/api/ .我希望所有包含 /api 的 HTTP 请求返回 400 Bad Requests 或 403 Forbidden(不确定哪个状态最有意义),而所有其他普通 HTTP 请求可以继续重定向到它们的 HTTPS 对应请求.

计划将这些规则包含在 vhost 配置中,而不是 htaccess 文件中。 /api 不是实际目录,它只是框架提供的路径,因此 /api 内的 .htaccess 文件将无法工作。 (我想这并不重要。我只是在这里更加详细)。

最佳答案

您可以使用 SSLRequireSSL在您的目录配置中。

像这样:

<Location /api>
    SSLRequireSSL
</Location>

当然,您需要将其放置在正确的位置(取决于您的其余配置),以便它优先于潜在的重写/重定向。

关于apache - 如何让 Apache 完全拒绝一个目录的非 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701984/

相关文章:

php - Debian Php Max 文件上传

apache - mod_rewrite 使用专有协议(protocol)重定向到 URL

node.js - websocket 服务器的 Apache 代理不工作

php - 在重写 .htaccess 时保留查询字符串

Python 在一个环境中拒绝 text.replace()

php - 重定向和更改单个 URL 段

c# - C# SslStream 不适合登录到 facebook 吗?

user-interface - HiveMQ 中 Web UI 的 SSL/TLS

ssl - wso2 das 3.0.1 与 am 1.10.0 : Cannot borrow client for ssl://localhost:7711

php - PHP 的高级 Htaccess 重写规则