有一个域:
maindomain.com
3个插件域:
addondomain.com
addon-domain.com
addondomain.net
我的目标是将每个域重定向到https://www.maindomain.com
这是我尝试过的(.htaccess
):
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} (^(?:www\.)?(addondomain|addon-domain)\.com$|^(?:www\.)?addondomain\.net$) [NC]
RewriteRule ^ https://www.maindomain.com%{REQUEST_URI} [R=302,L,NE]
或者这个(.htaccess
):
RewriteCond %{HTTP_HOST} ^www\.?addondomain\.com [NC]
RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.?addon-domain\.com [NC]
RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.?addondomain\.net[NC]
RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.maindomain\.com$ [NC]
RewriteRule ^(.*)$ https://www.maindomain.com/$1 [L,R=301]
如果输入www.addondomain.com
或addondomain.com
作为网址,则此方法有效。但如果有人输入https://www.addondomain.com
通知“此连接不安全”,则会显示。
我是否必须为每个插件域申请SSL证书才能使其正常运行?或者我的.htaccess
文件中有什么问题吗?
答案 0 :(得分:1)
我是否必须为每个插件域申请SSL证书才能使其正常工作?
是。在您的服务器(以及您的.htaccess
代码)能够处理请求之前,SSL握手(以及浏览器错误)发生在请求的最开始。
请注意,这并不一定意味着为每个域安装新的SSL证书。您可以获得多域/ SAN证书 - 所有现代浏览器都支持这些证书。
RewriteCond %{HTTP_HOST} ^www\.?addondomain\.com [NC] RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.?addon-domain\.com [NC] RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.?addondomain\.net[NC] RewriteRule ^(.*)$ https://www\.maindomain\.com/$1 [R=301,L] RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\.maindomain\.com$ [NC] RewriteRule ^(.*)$ https://www.maindomain.com/$1 [L,R=301]
顺便说一句,您不需要前三个规则块。最后一个就足够了。但是删除否定条件下的NC
标志。 (你在第3条规则的标志之前也错过了一个空格)。换句话说:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.maindomain\.com$
RewriteRule (.*) https://www.maindomain.com/$1 [L,R=301]