将所有流量重定向到https://www.example.com

时间:2017-06-15 06:14:47

标签: apache ssl redirect server lets-encrypt

您好我尝试将http://example.comhttps://example.comhttp://www.example.comwww.example.com重定向到 https://www.example.com

为此我使用apache配置如下:

<Directory /var/www/>
    Options +FollowSymLinks -MultiViews
    AllowOverride All
    Order allow,deny
    allow from all

    # Turn on mod rewrite
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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

以上设置适用于www.example.com,但是当我输入域时没有www浏览器显示警告消息。

我还为两个域example.comwww.example.com安装了ssl证书(让我们加密)。但我已经分别逐个安装了这些证书,首先是example.com然后www.example.com。请告诉我为什么重定向不起作用以及为什么浏览器会显示example.com的警告消息,当我为这两个域提供证书时。

1 个答案:

答案 0 :(得分:0)

你应该试试这个:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

有关详细信息,您还可以参考https://simonecarletti.com/blog/2016/08/redirect-domain-http-https-www-apache/