我正在尝试使用以下方法将用户从HTTP重定向到HTTPS:
/etc/apache2/sites-available/example.conf
<VirtualHost *:80>
ServerName example.com
RewriteEngine on
RewriteRule ^/(.*)$ https://www.example.com/$1 [QSA,L,R=301]
</VirtualHost>
如果我尝试将网址设为 example.com ,它工作正常:它会重定向到 https:example.com ,这很好。但是当我尝试将网址设为 www.example.com 时,它就无效了。
答案 0 :(得分:2)
<VirtualHost *:80> ServerName example.com RewriteEngine on RewriteRule ^/(.*)$ https://www.example.com/$1 [QSA,L,R=301] </VirtualHost>
如果我尝试将URL命名为example.com,它会正常工作,它会重定向到 https:example.com这很好,但是当我尝试点击URL时 www.example.com然后它不起作用。
它不应该工作。您的虚拟名称为example.com
,不是 www.example.com
。因此,当您点击www.example.com
时,不涉及该特定虚拟主机,而是激活某些其他配置指令(可能是默认值)。
尝试添加别名:
ServerName example.com
ServerAlias www.example.com
答案 1 :(得分:0)
试试这个
<VirtualHost *:80>
ServerName example.com
RewriteEngine on
RewriteRule ^(.*)$ https://www.example.com/$1 [QSA,L,R=301]
</VirtualHost>