使用htaccess将非SSL重定向到错误页面

时间:2012-09-10 13:01:32

标签: .htaccess ssl

我找到了几种将非SSL重定向到SSL的解决方案,但我不想为特定目的这样做。因为它仍然会通过互联网发送未加密的信息。

我想强制用户调用SSL,否则他们无法使用该页面。

所以我需要将非SSL重定向到错误页面(简单的HTML)。如果SSL访问该页面则不执行任何操作。

任何人都有一个很好的htaccess吗?最好与CodeIgniter兼容。

3 个答案:

答案 0 :(得分:1)

  

我找到了几种将非SSL重定向到SSL的解决方案......它仍会通过互联网发送未加密的信息。

如果您收到非SSL请求并立即执行30X重定向,则传递的唯一未加密数据是请求的URL和重定向标头。我怀疑那有什么不妥。

将所有非SSL请求发送到一个页面:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule .* insecure.html [L]

答案 1 :(得分:0)

您应该能够添加mod_rewrite规则来执行此操作,在文档根目录中的htaccess文件中添加之前的

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^name-of-protected-page /non-ssl-error-page.html [L,R]

答案 2 :(得分:0)

如果您想将非SSL用户重定向到错误页面,请使用此功能(请注意,这会将非SSL用户重定向到您网站的所有页面):

RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule . error.php [L]

如果您希望用户将自己重定向到错误页面,请将[R]标记添加到最后一行:

RewriteRule . error.php [L,R]