在网址前面强制使用https和www时,请避免多次重定向

时间:2016-06-18 20:49:10

标签: php apache .htaccess redirect nginx

我有一个网站,我正在部署到启用了https的服务器。所以我的客户的要求如下:

  1. 强制https。
  2. 将www保留在网址中,以便将网址设为https://www.example.com,而不是https://exambple.com,以便强制使用3w。
  3. 我在.htaccess文件中使用此规则以获得所需的效果:

    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/es/$1/ [R=301,L]
    

    但是当使用PageSpeed Insights测试页面速度时,我得到的服务器响应时间很短,为1秒。使用Chrome开发者工具进行调试时,我发现上次重定向后网站的响应时间约为300毫秒,因此重定向会增加响应时间。

    所以,我的问题是,如何在最小化重定向的同时强制将https和www放在网址前?

2 个答案:

答案 0 :(得分:1)

尝试这样做:

强制使用SSL:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

强制WWW:

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

答案 1 :(得分:0)

您可以使用以下规则,将www和https附加到您的网址上。

"<firstname>Anna"