我有谷歌爸爸托管,我正在使用它来托管多个域名。有了这个主机,我得到了一个免费的标准(一个域名) SSL证书。我在我的主域上设置了它,一切都很好,https://www.primarydomain.com工作正常。另外,我的辅助站点仍然可以使用常规的http。
(也只是想让你知道,当我访问https://secondarydomain.com时,大多数浏览器都会告诉我返回,网站不好,可能会损害计算机等,因为证书只适用于主要用户。)
所以我尝试做的是,当用户转到我的主站点时,htaccess会使用以下代码自动更改为https:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}这一切都很好,但是因为第二个域从第一个域的目录中获取内容,所以.htaccess会影响我拥有的所有域,从而尝试将https添加到我的第二个域中。(通知用户离开站点)
我该如何告诉.htaccess只有在我的主域上才更改为https,并让它与我的辅助域的http保持一致?
如果你不知道我在说什么,你可以马上看到我的主域是如何变成https:http://www.alexkafer.com的
然后,我的一个辅助域:http://www.codingapple.com也会尝试更改为https,即使它不是为该域创建的。我保证我的第二个不会伤害你的计算机,只是证书不是针对域名codingapple.com的,这就是我想要修复的。
发布于 2012-06-26 00:35:59
感谢@Scott S的代码。它工作得很完美,除了它做了我想要的相反的事情。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.1|localhost)$
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}上面的代码将每个辅助域更改为HTTPS,而不是将主域更改为HTTPS。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(127\.0\.0\.1|localhost)$
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}我删除了!在^(127.0.0.1|localhost)$之前,现在它正在做我需要的事情!
发布于 2012-06-25 19:23:29
添加RewriteCond以检查url。
例如,如果HTTPS不是本地连接,下面的代码将打开它。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.1|localhost)$
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}https://stackoverflow.com/questions/11183766
复制相似问题