使用www apache2redirect到https://

我将所有http://请求redirect到https://使用像这样的apache2主机.conf文件。

<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect / https://www.example.com/ </VirtualHost> <VirtualHost *:443> ServerName www.example.com #more details here </VirtualHost> 

这工作正常,并将所有请求redirect到https://

现在我想将我的非www请求redirect到www(所以https://example.com到https://www.example.com )。 我试图在上面的443块之前,之后再加上这些。 但没有运气:(

 <VirtualHost *:443> ServerName example.com Redirect / https://www.example.com/ </VirtualHost> 

任何想法如何我可以启用这个没有.htaccess。

请帮忙..

你想添加redirect到现有的*:443虚拟主机。 像这样的东西应该这样做:

 RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 

把它放在任何其他的RewriteRule部分之前。

你有什么已经是正确的。

你需要用NameVirtualHost来定义*:443

使用这个configuration,其中# more details here是你所有的SSL设置,因为你已经有了:

 NameVirtualHost *:443 <VirtualHost *:443> ServerName www.example.com # more details here </VirtualHost> <VirtualHost *:443> ServerName example.com Redirect / https://www.example.com/ # more details here </VirtualHost> 

每个 VirtualHost容器中需要您的SSL证书详细信息,即使它们相同。

不要使用额外的IPv4地址 – 这个用例不需要消耗额外的IP地址。 HTTP / 1.1可以在一个IP地址上处理多个域,包括使用SSL。