Raj
Raj

Reputation: 107

How to exclude a URL from HTTPS

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

Answers (1)

anubhava
anubhava

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

Related Questions