I'm having trouble with my .htaccess
redirects.
I need to forward all URLs to the non www version of the URL using HTTPS and also forward any non secure URLs to HTTPS too. In both cases I need to keep the full URL
I currently have these rules which almost work as I want but they seem to redirect any www traffic to the homepage rather than keeping the rest of the URL.
eg:
http://www.example.com/mycat/mypage.php
would goto
https://example.com/mycat/mypage.php
My current code:
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
I tried the rules off this link but they seem to get stuck in a redirect loop
htaccess redirect non-www to www with SSL/HTTPS
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}% {REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
With HSTS (double redirect):
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}
[L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]