重定向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不
- http://domain.com =>https://domain.com =>
- http://www.domain.com =>https://domain.com => OK
- https://domain.com =>行
- 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://stackoverflow.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>
答
这是不可能通过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?
你需要一个通配符证书,但我会帮你在这里。尝试删除''和' '并告诉我,如果你得到任何错误500. –
2015-02-06 09:44:56
没有错误=>工程 – 2015-02-06 09:46:31
问题是这已经是一个多域证书,所以这意味着我将不得不添加每个www。版本的所有域分开?我不知道任何通配符多域证书 – 2015-02-06 09:47:23