强制https用于整个服务器/域

时间:2009-02-19 22:05:55

标签: apache .htaccess mod-rewrite https

我正在开发一些只能通过https访问的表单。我有一个专用的服务器,有自己的证书和所有好东西。

所以我的问题确实是双重的:

1)。强制每个请求成为https的最佳方法是什么?有没有比这更好的方法.htacess / mod_rewrite规则:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2)。是否有任何潜在的陷阱或缺点迫使我应该考虑的所有内容都是https(除了开销,这似乎不是一个问题)?

1 个答案:

答案 0 :(得分:13)

你所拥有的应该没问题,这就是我使用的:

RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

R表示它是重定向而不是重写,而L表示重写引擎不应再执行重写。

我最初在这里找到了这个:Httpd Wiki

修改

我忘了提及强制所有请求都通过HTTPS的SSLRequireSSL指令。详细信息可在Apache Documentation

中找到