0

我有 Godaddy 托管,我正在使用它来托管多个域。通过此托管,我获得了免费的标准(一个域)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 这就是我要解决的问题。

4

2 回答 2

0

添加一个RewriteCond以检查网址。

例如,HTTPS如果不是本地连接,以下代码将打开。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.1|localhost)$
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
于 2012-06-25T11:23:28.757 回答
0

感谢@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-25T16:35:59.173 回答