Sami Sami - 3 months ago 12
Apache Configuration Question

htaccess - Understanding the different between two RewriteCond conditions

I would be so appreciative if somebody would explain the differences between the Condition 1 and Condition 2 for the below htaccess code.

Condition 1

RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]


Condition 2

RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Answer

The thing is for your rules is that you don't need 2 rules to accomplish the same goal. They both redirect to https version of your site, so you can combine the conditions using [OR]

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

So that will redirect anything that is not http to https without www (or any other subdomain). And redirect www to non www with https. 2 conditions same rule.

Comments