子域上 http:// 的 Htaccess

Htaccess for http:// on subdomains

我目前有一个网站,其 .htaccess 可以正常工作,它会强制 https://www 用户访问该网站。我最近创建了一个子域 "demo.example.com",因为我的主站点 "example.com" 和 "example.com/demo/" 使用同一 CMS 的不同实例,并且两个安装之间的 cookie 混合在一起(因此使用子域会解决这个问题)。

我正在尝试进行以下设置

http://example.com      => https://www.example.com
http://www.example.com  => https://www.example.com
http://demo.example.com => http://demo.example.com

但我却得到了

http://example.com      => https://www.example.com
http://www.example.com  => https://www.example.com
http://demo.example.com => https://demo.example.com

由于我的证书不涵盖子域,因此使用 SSL 警告将我的访问者猛击到 demo.example.com

我查看了其他 Whosebug 问题,虽然这个 question 看起来很有希望,但我 希望我的子域上的访问者重定向到它的子目录。

这是我的 .htaccess

的相关部分
# BEGIN HTTPS Redirection Plugin
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# END HTTPS Redirection Plugin

在主域的根 .htaccess 中你可以有这个规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.com)$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]