我正在运行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/*
在.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://
同一主机上相同URL路径的所有请求。
请注意,这是不允许的www.<subdomain>.example.com
(我假设您的SSL证书无论如何都不会涉及)。
仅在确定运行正常时,才将302
(临时)更改为301
(永久)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句