我正在运行WordPress多站点网络,允许用户在其网站上选择使用自定义域名。选择不使用自定义域的用户将被分配WP安装的子域(例如:fred.example.com,其中example.com是安装WP多站点网络的URL)。
我为主域配置了通配符SSL,但我没有可用于自定义域名的证书。
我需要的是一个htaccess规则,如果请求是针对example.com
或*.example.com
,则强制流量为https,但如果请求是使用自定义域进行则不会。
它应该如下工作:
http://example.com/*
→https://example.com/*
http://foo.example.com/*
→https://foo.example.com/*
http://customdomain.com/*
→http://customdomain.com/*
答案 0 :(得分:3)
尝试使用.htaccess
文件顶部附近的内容。使用mod_rewrite:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:[a-z0-9-]+\.)?example\.com
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
这说明是......对于非HTTPS并且匹配example.com
或<subdomain>.example.com
的所有请求,然后在同一主机上重定向到https://
,相同的网址路径。< / p>
请注意,这不允许www.<subdomain>.example.com
(我认为您的SSL证书无论如何都不会涵盖)。
只有在您确定其工作正常时,才能将302
(临时)更改为301
(永久)。