Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTACCESS add WWW with HTTPS redirect

Currently my htaccess code is

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


#send all traffic to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

This works when following urls are entered

1. https://example.com -> https://www.example.com
2. http://example.com -> https://www.example.com
3. http://www.example.com -> https://www.example.com
4. https://example.com -> https://www.example.com
5. https://example.com/somepage -> https://www.example.com/somepage
6. http://www.example.com/somepage -> https://www.example.com/somepage

But it doesn't work when both https and www is not present while trying to access some page, instead it redirect to strange url

7. http://example.com/somepage -> https://www.example.com/https://example.com/somepage
like image 245
Uday Hiwarale Avatar asked Feb 12 '23 02:02

Uday Hiwarale


1 Answers

Replace your current code by this one

RewriteEngine On

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

Note: maybe you'll have to clear your browser's cache to see it working for http://example.com/somepage

like image 99
Justin Iurman Avatar answered Feb 19 '23 07:02

Justin Iurman