重定向http => https(非www)+ www https =>非www https(没有www的证书)

问题描述:

我看过很多关于重写的文章。都好。但是没有一个涵盖这种确切的情况所以这是我的问题:希望你能帮助。因为我无法让它工作。重定向http => https(非www)+ www https =>非www https(没有www的证书)

  • 我们运行domain.com网站(无www)
  • 我们SSL设置(所以只有HTTPS)
  • 我们对非www版本(没有WWW版本)1个证书

当我们执行所有四个测试的情况下,3行,1不

  1. http://domain.com =>https://domain.com =>
  2. http://www.domain.com =>https://domain.com => OK
  3. https://domain.com =>行
  4. https://www.domain.com => ERROR。证书警告不安全

问题:现在为什么给我这个错误号4 https://www。我期望第一条规则可以提取并将我们发送到非www版本。我该如何解决这个问题?

感谢所有帮助,P肖恩


这是我当期的htaccess的

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    # Added based on article http://*.com/questions/234723/generic-htaccess-redirect-www-to-non-www 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L] 
</IfModule> 
+0

你需要一个通配符证书,但我会帮你在这里。尝试删除''和''并告诉我,如果你得到任何错误500. – 2015-02-06 09:44:56

+0

没有错误=>工程 – 2015-02-06 09:46:31

+0

问题是这已经是一个多域证书,所以这意味着我将不得不添加每个www。版本的所有域分开?我不知道任何通配符多域证书 – 2015-02-06 09:47:23

这是不可能通过htaccess或nginx conf来解决。

人们需要一个证书覆盖www和域

所以非www的通配符证书,或其中两个www和非WWW被作为一个单独的域

希望它多域证书帮助

你可以在你的.htaccess使用:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} off 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 
</IfModule> 

但没有什么可以做证书错误。
阅读:Redirecting https://www to https://non-www - without seeing certificate error, possible?