AlexB
AlexB

Reputation: 2184

incorrect redirect from http to https

trying to go https, but when I use the following in my .htaccess I get redirect problem error

here is what I have in my .htaccess

RewriteEngine On
 RewriteBase /

 RewriteCond %{HTTP} on [OR]
 RewriteCond %{HTTP:X-Forwarded-Proto} https [OR]
 RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

 #Uncomment lines below when uploading to the live server
 RewriteCond %{HTTP_HOST} !^(www\.)example\.com$ [NC]
 RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule ^.*$ index.php [QSA,L,NC]

 #Uncomment lines below when uploading to the live server
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC]
 RewriteRule \.(gif|jpg|png|tif|js|css|xls|xlsx|zip|rar|pdf|ods|ots)$ - [F]

Please help

Upvotes: 1

Views: 386

Answers (1)

anubhava
anubhava

Reputation: 785896

Your first rule has many erroneous [OR] conditions and that is causing redirect loop.

Change your first rule to this:

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

And test after clearing your browser cache.

Upvotes: 1

Related Questions