我希望访问我的网站的用户在像这样访问它时被重定向到 SSL 版本
www.mysite.com
但是当他们访问其他网址时,例如...
www.mysite.com/some
www.mysite.com/other
www.mysite.com/links
它进入正常版本。
到目前为止,这就是我所拥有的不起作用:
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]
这适用于所有页面。
您当前的规则集仅检查
HTTP_HOST
. 要识别对您的首页的请求,您需要添加以下检查REQUEST_URI
:这还将检查空请求 URI、标准 Drupal 头版“节点”和您可能给它的别名。这只是一个未经测试的例子。如果您更改了默认首页,则需要将“节点”替换为该首页。还要确保测试尾部斜线情况- 根据您的设置,您还需要允许匹配这些情况。
如果请求已经针对 https,您可能还应该添加对
HTTPS
Server 变量的检查并跳过规则。它将相应地包含“开”或“关”。如果要强制其他页面显式使用非 ssl,则还需要为所有其他情况添加重定向到非 ssl 的规则。
除了上面链接的标准 mod_rewrite 文档页面之外,您可能还需要查看URL 重写指南的示例/说明。
另请注意,根据您的设置,您可能根本不需要/不想检查
HTTP_HOST
,例如,您可能有不同的主机指向您的实例(现在或将来 - 一个常见的例子是“www.mysite.com”,您当前的设置会忽略)。查看 Drupal 安全页面模块:http ://drupal.org/project/securepages
干杯