Forum Discussion
iRule, Traffic Policy or Re-Write Policy
- Sep 24, 2025
you may see https://hostnameA.test.com:666 in the browser for many reasons
thats why I am asking if there is a redirect response (301 or 302) or there is something else
anyway give this a trywhen HTTP_REQUEST { STREAM::disable HTTP::header remove "Accept-Encoding" if {[IP::addr [IP::client_addr] equals 192.168.1.1] } { pool POOL_A set selected_hostname "hostnameA.test.com" HTTP::header replace Host $selected_hostname } elseif {[IP::addr [IP::client_addr] equals 192.168.2.1] } { pool POOL_B set selected_hostname "hostnameB.test.com" HTTP::header replace Host $selected_hostname } elseif {[IP::addr [IP::client_addr] equals 192.168.3.1] } { pool POOL_C set selected_hostname "hostnameC.test.com" HTTP::header replace Host $selected_hostname } } when HTTP_RESPONSE { if {[HTTP::header exists "Location"] && [info exists selected_hostname]} { set loc [HTTP::header "Location"] if {[string match "https://$selected_hostname:666*" $loc]} { HTTP::header replace "Location" [string map "https://$selected_hostname:666 https://example.com" $loc] } } if {[HTTP::header "Content-Type"] contains "text" && [info exists selected_hostname]} { STREAM::expression "@https://$selected_hostname@https://example.com@" STREAM::enable } }
you may see https://hostnameA.test.com:666 in the browser for many reasons
thats why I am asking if there is a redirect response (301 or 302) or there is something else
anyway give this a try
when HTTP_REQUEST
{
STREAM::disable
HTTP::header remove "Accept-Encoding"
if {[IP::addr [IP::client_addr] equals 192.168.1.1] }
{
pool POOL_A
set selected_hostname "hostnameA.test.com"
HTTP::header replace Host $selected_hostname
}
elseif {[IP::addr [IP::client_addr] equals 192.168.2.1] }
{
pool POOL_B
set selected_hostname "hostnameB.test.com"
HTTP::header replace Host $selected_hostname
}
elseif {[IP::addr [IP::client_addr] equals 192.168.3.1] }
{
pool POOL_C
set selected_hostname "hostnameC.test.com"
HTTP::header replace Host $selected_hostname
}
}
when HTTP_RESPONSE
{
if {[HTTP::header exists "Location"] && [info exists selected_hostname]}
{
set loc [HTTP::header "Location"]
if {[string match "https://$selected_hostname:666*" $loc]}
{
HTTP::header replace "Location" [string map "https://$selected_hostname:666 https://example.com" $loc]
}
}
if {[HTTP::header "Content-Type"] contains "text" && [info exists selected_hostname]}
{
STREAM::expression "@https://$selected_hostname@https://example.com@"
STREAM::enable
}
}
This has solved my issue, specifically the HTTP_REQUEST section. The response has been dealt with by another means. Thanks for your help
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
