Forum Discussion
http redirect mask
Hi, we have a site eg. abc.host.com that comes in and gets redirected to http://def:8080/123/456 (an internal box). I have applied the following irule to do this:
when HTTP_REQUEST {
HTTP::redirect "http://def:8080/123/456"
}
This works fine just the end user sees "http://def:8080/123/456" in their address bar. Is there anyway to change this so they see http://abc.host.com ?
Thanks
15 Replies
- cymru81
Altocumulus
Ah ok, that makes a bit more sense to me!
This could be incorrect, I was using a pool but I've found this isn't needed since I applied the iRule? I disabled the members of the pool to test and it still re-directs?
How would I write the irule in my scenario?
- Kevin_Stewart
Employee
A pool is really just a layer 3/4 path to a service and has nothing to do with URIs. If you've disabled all of the members of the pool, then you shouldn't be getting to the application.
The HTTP::uri command simply changes the URI in the request as it passes through the proxy to the pool. The client doesn't see it.
The HTTP::redirect command issues an immediate 302 redirect response to the client. The Location header in this response tells the client to make a new request to the specified URL. If you issue a redirect in the iRule, traffic will not pass to the pool.
- cymru81
Altocumulus
ah ok that makes sense then. so as im using HTTP::redirect a pool is not required? just whether I can mask the redirected URL in this irule now...? :)
- Kevin_Stewart
Employee
You cannot mask the URL in an HTTP redirect. This URL is sent to the client and must be addressable. If you want to mask the URL, then you cannot send a redirect. You would use HTTP::uri instead.
- nitass
Employee
just whether I can mask the redirected URL in this irule now
doesn't the irule Kevin suggested work?
e.g.
configuration root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos) list ltm virtual bar ltm virtual bar { destination 172.28.20.111:80 ip-protocol tcp mask 255.255.255.255 pool foo profiles { http { } tcp { } } rules { myrule } source 0.0.0.0/0 source-address-translation { type automap } vs-index 2 } root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos) list ltm pool foo ltm pool foo { members { 200.200.200.101:8080 { address 200.200.200.101 } } } root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos) list ltm rule myrule ltm rule myrule { when HTTP_REQUEST { if { [HTTP::uri] equals "/" } { HTTP::uri "/123/456" } } } packet trace [root@ve11a:Active:Changes Pending] config ssldump -Aed -nni 0.0 port 80 or port 8080 New TCP connection 1: 172.28.20.17(35618) <-> 172.28.20.111(80) 1378628675.7572 (0.0019) C>S --------------------------------------------------------------- GET / HTTP/1.1 User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 Host: 172.28.20.111 Accept: */* --------------------------------------------------------------- New TCP connection 2: 200.200.200.14(35618) <-> 200.200.200.101(8080) 1378628675.7583 (0.0010) C>S --------------------------------------------------------------- GET /123/456 HTTP/1.1 User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 Host: 172.28.20.111 Accept: */* ---------------------------------------------------------------
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com