使用/向HTTPS重定向插件域

时间:2017-10-17 07:58:17

标签: apache .htaccess ssl redirect

有一个域:

  • 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.comaddondomain.com作为网址,则此方法有效。但如果有人输入https://www.addondomain.com通知“此连接不安全”,则会显示。

我是否必须为每个插件域申请SSL证书才能使其正常运行?或者我的.htaccess文件中有什么问题吗?

1 个答案:

答案 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]