我找到了几种将非 SSL 重定向到 SSL 的解决方案,但我不想出于特定目的这样做。因为它仍然会通过互联网发送未加密的信息。
我想强制用户调用 SSL,否则他们无法使用该页面。
所以我需要将非 SSL 重定向到错误页面(简单的 HTML)。如果页面被 SSL 访问,则什么也不做。
有人对此有很好的htaccess吗?最好与 CodeIgniter 兼容。
我找到了几种将非 SSL 重定向到 SSL 的解决方案……它仍然会通过 Internet 发送未加密的信息。
如果您收到非 SSL 请求并立即执行 30X 重定向,则传递的唯一未加密数据是请求的 URL 和重定向标头。我怀疑这有什么害处。
将所有非 SSL 请求发送到一页:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule .* insecure.html [L]
如果您想将非 SSL 用户重定向到错误页面,请使用此(请注意,这会将非 SSL 用户重定向到您网站的所有页面):
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule . error.php [L]
如果您希望用户看到自己被重定向到错误页面,请将[R]
标志添加到最后一行:
RewriteRule . error.php [L,R]
您应该能够添加 mod_rewrite 规则来执行此操作,在文档根目录的 htaccess 文件中的任何 CI 规则之前添加这些规则:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^name-of-protected-page /non-ssl-error-page.html [L,R]