使用mod_rewrite和htaccess将主域重定向到https但将所有子域重定向到http

Ken*_*nMc 0 .htaccess mod-rewrite https wildcard-subdomain http

细节

我有一个商业主机gator帐户..不吹牛..附带免费的私人SSL和IP.我正在运行一个使用子域设置的wordpress MU安装,并通过他们提供的插件设置域映射.

假设你对Worpress MU一无所知......基本上Wordpress MU允许你在一个Wordpress安装下创建多个自托管博客.我有一个通配符子域设置来捕获所有sub.domain.com请求和Wordpress MU做一些伏都教来将其重定向到正确的目的地.

私有SSL是免费的,所以我现在不打算使用通配符SSL,但我知道这是一个选项.当我说,当我点击从主域上的https到子域的任何链接时,https会粘贴到URL.

任何人都可以帮我做以下事情吗?

(请注意:我必须在http(s)://和www之间添加空格以打破链接以便发布我的问题)

对于主要的"博客"网址,我希望将www.domain.com和domain.com示例重定向到安全的https,结果为https:// www.domain.com

对于"通配符"子域"子博客"网址,我想将示例sub.domain.com和https:// sub.domain.com重定向为ssl格式为http,结果为http:// sub. domain.com

代码示例将是赞赏和详细(虚拟)教程,所以我可以理解发生了什么将是伟大的.我是mod_rewrite的新手,我的技能等级仅限于基本的301重定向.

谢谢

Cro*_*ses 5

您可以在根目录中使用它.htaccess:

RewriteEngine on 

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

# redirect to http subdomain
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^((?!www).+\.domain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)