I'm losing link juice in multiple redirects.
I need to redirect all domain versions to my default domain i.e.
https://example.com
By all domain versions I mean http://www
, http://
, https://www
and https://
. (index.php
for all.)
I am currently using the code below. All domains are redirecting to https://
but not directly. If I type http://www
, it will be redirected 3 times as in the picture. I still need to redirect index.php
.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
I am using "Redirect Path" extension of Google Chrome browser to monitor the redirects.
You can see redirect 3 times:
You can see redirect 2 times:
<VirtualHost *:443>
code snippet (in the comment, now deleted) appeared to have the wrongServerName
defined (example.com
instead ofwww.example.com
), which would have resulted in a redirect loop. If you are going the VirtualHost route then Tom's answer looks good as far as I can see.