仅限www和非www的HTTPS - 所有子域的HTTP

时间:2015-06-04 10:11:44

标签: apache .htaccess http mod-rewrite https

我只有单一域名证书,包括www。 使用我当前的.htaccess设置,我将所有HTTP请求重定向到HTTPS。 但我想说明一下:

  1. 强制HTTPS domain.com(www和非www)
  2. 仅对所有子域* .domain.com
  3. 允许HTTP

    这可能吗?

    我当前的.htaccess设置强制所有内容都使用HTTPS

    # Force SSL
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

1 个答案:

答案 0 :(得分:1)

我找到了1个解决方案:

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

# Force HTTP subdomains
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^((?!www).+\.domain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]