Apache:对图像、CSS 和 JS 文件禁用 SSL

dan*_*dan 1 ssl apache-2.2

我正在通过 SSL 为一些网页提供服务。
问题是所有图像、CSS 和 JS 文件都使用相对路径 (/images/save.png) 包含在这些页面中,因此浏览器通过 SSL 请求它们。那有点浪费。

有没有办法配置 Apache 以便不通过 SSL 提供图像、CSS 和 JS 文件,即使它被请求?

pac*_*cey 6

我不建议这样做,因为每个客户端都会收到有关混合 ssl/非 ssl 内容的警告。但是你问:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(\.js|\.css)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)

更新

正如@lekensteyn 正确指出的那样,不要低估资源的浪费。在这种情况下,重写并没有真正表现得很好。此外,对于对文件的每个请求,都必须匹配 RewriteConditions。

您还需要更多开放的 TCP 端口,这又会产生开销。即使我们没有详细说明,让两个协议完成一个工作也会产生很大的开销。

  • 我发现重定向比通过 HTTPS 提供图像/js/css 更浪费。如果您确实希望通过未加密的频道提供这些文件,则最好在 HTML 文件中重写 URL。 (2认同)