您好我尝试将http://example.com
,https://example.com
,http://www.example.com
,www.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.com
,www.example.com
安装了ssl证书(让我们加密)。但我已经分别逐个安装了这些证书,首先是example.com
然后www.example.com
。请告诉我为什么重定向不起作用以及为什么浏览器会显示example.com
的警告消息,当我为这两个域提供证书时。
答案 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/