Apacheredirect – 让我们encryptionSSL证书redirect到裸域,而不是www

我最近build立了一个运行在Wordpress上的新网站,它运行的非常好。 因为我想为网站获得一个SSL证书,所以我想我会使用Let's Encrypt,因为我已经听到很多关于它的好消息。

那么我不得不同意花了30秒让SSL在我的域上工作,但有一个小问题。

我们encryption已经设置了以下规则:

http://domain.com – > https://domain.com (失败)

http://www.domain.com – > https://www.domain.com (作品)

该证书只适用于www.domain.com这是令人讨厌的。 在过去,我购买的所有SSL证书在SSL证书中都包含domain.com和www.domain.com。 不知道在获取Let's Encrypt证书时是否做错了,但事实就是如此。

我所需要做的就是改变事情,以便http://domain.comredirect到https://www.domain.com 。

但是因为我是Apache新手,所以不知道该怎么做。 我在.htaccess文件中有下面的redirect规则,但似乎没有帮助,因为Apache似乎在请求到达.htaccess文件中的重写规则之前redirect。 这是规则:

RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] 

所以我很困扰这个特殊的问题。 该网站正确地从domain.comredirect到www.domain.com之前我添加SSL证书,所以它似乎是让我们encryption自动化安装,我找不到它。

这是重写规则让我们的encryption添加到我的Apacheconfiguration文件:

 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent] 

我认为这与上面的线有关,但我不知道是什么。

任何帮助,将不胜感激。

您需要为非www域创build单独的VirtualHost并像这样设置redirect:

<VirtualHost *:80> ServerName domain.com Redirect 301 / https://www.domain.com </VirtualHost>

基本上,将上面的代码添加到你的httpd.conf应该可以解决你的问题。 虽然你可能想要咨询你的操作系统文档在ow添加虚拟主机到Apache …