2009-02-19 80 views
10

我正在开发许多只能通过https访问的表单。我有一个拥有自己的证书和所有好东西的专用服务器。为整个服务器/域强制HTTPS

所以我的问题真的是两倍:

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

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

2)。是否有任何潜在的缺陷或迫使所有的东西都成为我应该考虑的https(除了开销之外,这看起来并不是什么问题)?

回答

13

你有什么要细,这是我用:

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

R表示这是一个重定向,而不是一个重写,而L表示重写引擎不应该执行任何更多的重写。

我最初发现这个位置:Httpd Wiki

编辑:

我忘了提SSLRequireSSL指令,强制所有请求都必须通过HTTPS。详情请参阅Apache Documentation

+0

出于某种原因,在我的配置中,您的方法不起作用,而'我的'做。任何想法为什么?此外,感谢或SSLRequireSSL的提示,但我的理解是,这将反弹非HTTPS请求,这不是我想要的在这种情况下。 – da5id 2009-02-19 23:08:44