0

我正在使用 .htaccess 将所有请求(子域除外)从 HTTP 重定向到 HTTPS。这段代码对我来说很好:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !=m.example.com
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

但是,它不会阻止用户手动尝试使用 HTTPS 访问子域(我拥有的 SSL 不涵盖子域并且在用于子域时显示信任错误)。

现在,我想知道:

1-如何将所有到子域的 HTTPS 请求重定向回 HTTP?

2-如何修改此代码以将子域限制动态应用于其他子域(不仅是 m.example.com)

4

1 回答 1

1

1) 如果证书不包含 m.example.com,则永远无法发送重定向,因为浏览器将拒绝建立连接。所以没有办法做到这一点。

2)因此,您希望 htaccess 做的就是将裸域重定向到 https。为此,请使用:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

我的情况下证书还包括www.example.com使用

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
于 2012-05-30T09:48:21.637 回答