简体   繁体   中英

301 redirect http to https with www

I have to redirect my domain from http to https . In my htaccess I have already.

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

This snippet redirect everything without "www" to "www".

When I change this to

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

The result is:

http://www.example.com/folder/page.php

becomes

Location => https://www.example.com/folder/page.php

Fine!

https://example.com/folder/page.php

becomes

https://www.example.com/folder/page.php

Fine!

but:

 http://example.com/folder/page.php

 becomes

 Location => https://example.com/folder/page.php

but it has to be

 Location => https://www.example.com/folder/page.php

How is it possible to fix this?

I know all of this redirects:

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

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

but I need only one redirection instead of two 301.

You can use the following rule

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

Clear your browser cache before testing this.

I have found a solution here:

https://webmasters.stackexchange.com/questions/84757/htaccess-redirect-non-www-to-www-with-ssl-https

The second answer by @w3dk is working.

RewriteEngine On
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Your site needs to be accessible by both www and non-www over SSL for the .htaccess redirect to trigger.

With letsencrypt its no problem to have this 2 certs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM