首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess HTTP或HTTPS取决于子域级别

.htaccess HTTP或HTTPS取决于子域级别
EN

Stack Overflow用户
提问于 2015-12-29 12:27:23
回答 1查看 54关注 0票数 0

对于无限级别的子域,我负担不起通配符SSL证书,我只有一个*.domain.tld通配符。因此,我希望HTTPS请求被重写到HTTP请求,如果%{HTTP_HOST}变量中有多个级别的子域。如果没有或有一个子域,则应该将HTTP请求重写为HTTPS请求。

例如:

代码语言:javascript
复制
www.domain.tld       -> 1 subdomain(s) HTTPS
domain.tld           -> 0 subdomain(s) HTTPS
sub.domain.tld       -> 1 subdomain(s) HTTPS
two.sub.domains.tld  -> 2 subdomain(s) HTTP
a.b.c.domain.tld     -> 3 subdomain(s) HTTP

这是我能想到的唯一不涉及购买通配符证书的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 12:49:49

您可以使用:

代码语言:javascript
复制
RewriteEngine on

# redirect http to https with 0 or 1 subdomain
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^([^.]+\.){1,2}[^.]+$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 

# redirect https to http with 2 or more subdomains
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^([^.]+\.){3,}[^.]+$ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 

您无法避免https重定向的SSL安全错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34511059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档