Reputation: 107
I have tried different links to see if it works, however it doesn't seems to work. I have configured https on Redhat EL6. However i wanted to have an exception from one of the IP.
I wanted to have https enabled for all except one IP 192.168.1.1. When i access the URL from the IP 192.168.1.1, it should get redirected or rewritten to http://cab.abc.com and not to https://cab.abc.com
Snip of my /etc/httpd/conf/httpd.conf :
<VirtualHost *:80>
DocumentRoot /opt/app/cr/public
ServerName cab.abc.com
RewriteEngine On
RewriteLog /var/tmp/rewrite.log
RewriteLogLevel 5
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.1
# RewriteRule .* http://cab.abc.com%{REQUEST_URI} [R]
# RewriteRule ^/(.*) http://cab.abc.com%{REQUEST_URI} [R]
RewriteRule .* http://cab.abc.com [L]
RewriteCond %{THE_REQUEST} ^(.*)
RewriteRule .* https://cab.abc.com%{REQUEST_URI} [R]
# ProxyPass / https://cab.abc.com/
# ProxyPassReverse / https://cab.abc.com/
</VirtualHost>
I have tried multiple options and checked the rewrite.log file :
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (2) rewrite '/' -> 'http://cab.abc.com'
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (2) implicitly forcing redirect (rc=302) with http://cab.abc.com
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (1) escaping http://cab.abc.com for redirect
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (1) redirect to http://cab.abc.com [REDIRECT/302]
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (2) init rewrite engine with requested uri /
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (3) applying pattern '.*' to uri '/'
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (4) RewriteCond: input=‘192.168.1.1’ pattern='^192\\.168\\.1\\.1’ => matched
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (2) rewrite '/' -> 'http://cab.abc.com'
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (2) implicitly forcing redirect (rc=302) with http://cab.abc.com
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (1) escaping http://cab.abc.com for redirect
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c9b48/initial] (1) redirect to http://cab.abc.com [REDIRECT/302]
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c5b28/initial] (2) init rewrite engine with requested uri /
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c5b28/initial] (3) applying pattern '.*' to uri '/'
192.1681.1 - - [21/Apr/2016:20:36:01 +0000] [cab.abc.com/sid#7fe3e21fe2e0][rid#7fe3e24c5b28/initial] (4) RewriteCond: input=‘192.1681.1.’ pattern='^192\\.168\\.1\\.1’ => matched
Requesting your help to exclude an IP address from HTTPs.
Upvotes: 1
Views: 259
Reputation: 785128
Try these rules after clearing browser cache:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REMOTE_ADDR} !=192.168.1.1
RewriteRule ^ https://cab.abc.com%{REQUEST_URI} [R,L,NE]
RewriteCond %{REMOTE_ADDR} =192.168.1.1
RewriteRule ^ http://cab.abc.com%{REQUEST_URI} [R,L,NE]
Upvotes: 1