Forum Discussion
nitass
Employee
what about this?
e.g.
config
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm virtual bar
ltm virtual bar {
destination 172.28.24.10:80
ip-protocol tcp
mask 255.255.255.255
pool foo
profiles {
http { }
tcp { }
}
rules {
qux
}
source 0.0.0.0/0
source-address-translation {
type automap
}
vs-index 26
}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm pool foo
ltm pool foo {
members {
200.200.200.101:80 {
address 200.200.200.101
}
}
}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm rule qux
ltm rule qux {
when HTTP_REQUEST {
set q [URI::query [HTTP::uri] query]
if { $q ne "" } {
HTTP::uri [string map "$q ReplacedValue" [HTTP::uri]]
}
}
}
trace
[root@ve11a:Active:In Sync] config ssldump -Aed -nni 0.0 port 80
New TCP connection 1: 172.28.24.1(37391) <-> 172.28.24.10(80)
1400340463.6588 (0.0033) C>S
---------------------------------------------------------------
GET /URI?query=any_value&other=somethingelse 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.24.10
Accept: */*
---------------------------------------------------------------
New TCP connection 2: 200.200.200.14(37391) <-> 200.200.200.101(80)
1400340463.6622 (0.0016) C>S
---------------------------------------------------------------
GET /URI?query=ReplacedValue&other=somethingelse 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.24.10
Accept: */*
---------------------------------------------------------------
Moinul_Rony
May 19, 2014Altostratus
Thanks nitass,
I wanted the irule to look for query=A in the URI and replace query=A to query=B
Could I try using the condition
if { $q eq "query=A" } {
HTTP::uri [string map "$q Query=B" [HTTP::uri]]
}