在主机名

时间:2017-03-22 07:27:00

标签: apache .htaccess redirect

我正在尝试使用以下方法将用户从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 时,它就无效了。

2 个答案:

答案 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>