I'd like to have:
http://example.com redirect to: http://www.example.com
https://example.com redirect to: https://www.example.com
And anything that is http://whatever.example.com NOT append the www like http://www.whatever.example.com.
Try this rule:
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Here’s an explanation:
on and off) and s (so either ons or offs) is equal to ons and captures the s. This means if %{HTTPS}s evaluates to ons, the first matching group is s and empty otherwise.^) and redirects them to the evaluated value of http%1://www.%{HTTP_HOST}%{REQUEST_URI} if both conditions are true. Where %1 is the first matching group of the previous condition (s if HTTPS and empty otherwise), %{HTTP_HOST} is the HTTP Host of the request and %{REQUEST_URI} is the absolute URL path that was requested.Try adding this RewriteCond to your .htaccess file to catch SSL only - then do the same thing for standard http.
RewriteCond %{HTTPS} on
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With