Forum Discussion
sjy2025
Nimbostratus
Jul 22, 2025iRule, Traffic Policy or Re-Write Policy
Hi, I have created an iRule that maps source addresses to a particular pool when CLIENT_ACCEPTED { if {[class match [IP::client_addr] equals clients1] } { pool POOL_1 } elseif {[class...
- 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 } }
Injeyan_Kostas
Nacreous
Sep 24, 2025you 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
}
}
sjy2025
Nimbostratus
Oct 01, 2025This has solved my issue, specifically the HTTP_REQUEST section. The response has been dealt with by another means. Thanks for your help
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects