如何在一次重定向中强制使用SSL和WWW?

时间:2017-02-06 11:45:30

标签: apache .htaccess redirect web https

我想在强制https和www的同时尽量减少重定向。

试图获得......

http://example.com

......直奔....​​..

https://www.example.com

...在一个重定向中。不是三,二,甚至是我在一个阶段的19!我坚持为www重定向一次。位,然后是https位的另一个重定向。

目前在我的.htacess中有这个:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R=301]

我即将承认失败,感觉不可能将两个规则合并为一个......但后来我发现Amazon.com实现了它!想知道怎么样?这是否涉及在.htacess之外做某事?

Screenshot of Amazon.com and their straight-to-the-point redirect

2 个答案:

答案 0 :(得分:0)

尝试这样,

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

要在一次重定向中强制使用https和www,您可以使用

RewriteEngine on

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