只为Drupal的首页设置SSLredirect?

我希望访问我的网站的用户在访问它时像这样被redirect到SSL版本

www.mysite.com 

但是,当他们访问其他url,如…

 www.mysite.com/some www.mysite.com/other www.mysite.com/links 

它转到正常版本。

这是我到目前为止,DOESNT的工作:

 RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301] 

这是所有页面。

你目前的规则只是检查HTTP_HOST 。 要确定您的首页的请求,您需要添加对REQUEST_URI检查:

 RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] RewriteCond %{REQUEST_URI} ^$ [NC, OR] RewriteCond %{REQUEST_URI} ^/node$ [NC, OR] RewriteCond %{REQUEST_URI} ^/yourFrontpageAlias$ [NC] RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301] 

这也将检查一个空的请求URI,标准的Drupal的首页“节点”和你可能给它的别名。 这只是一个未经testing的例子。 如果你已经改变了你的默认首页,你需要用“节点”代替。 还要确保testing尾随斜线的情况 – 根据您的设置,你需要允许匹配这些也。

如果请求已经是https,那么您应该也可以添加对HTTPS 服务器variables的检查并跳过该规则。 它将包含相应的“开”或“关”。

如果你想强制其他页面显式非SSL,你需要添加一个规则redirect到非SSL的所有其他情况。

除了上面链接的标准mod_rewrite文档页面之外,您可能还想查看URL重写指南的示例/说明。


另外请注意,根据您的设置,您可能根本不需要/需要检查HTTP_HOST ,例如您可能有不同的主机指向您的实例(现在或未来) – 一个常见示例是“www.mysite.com” ,你目前的设置将忽略)。

查看Drupal的安全页面模块: http : //drupal.org/project/securepages

干杯