For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

PowerRangers's avatar
PowerRangers
Icon for Cirrostratus rankCirrostratus
Jan 19, 2023
Solved

Need to redirect complete URL into redirected uri

Hello Everyone,  I am looking for an iRule for redirection of below https://URL1 into another https://2URL/redirect?url=https://URL1 Example:  Request:      https://www.abc.com/find/redirect    R...
  • Paulius's avatar
    Paulius
    Jan 19, 2023

    PowerRangers If your intent is to redirect anything going to www.abc.com  with any URI path starting with "/find/redirect/" the following should work for you.

     

    when CLIENT_ACCEPTED priority 500 {
    
        set DEFAULT_POOL [LB::server pool]
    
    }
    
    when HTTP_REQUEST priority 500 {
    
        set HOST [string tolower [HTTP::host]]
        set URI [string tolower [HTTP::uri]]
    
        if { ${HOST} == "www.abc.com" } {
            if { ${URI} starts_with "/find/redirect/" } {
                
                HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI"
    
            }
        } else {
            $DEFAULT_POOL
        }
    
    }

     

    Now if you want to redirect anything that connects to www.abc.com  to www.xyz.com/found/redirect?url=https:// <old_path> the following should do the job.

     

    when CLIENT_ACCEPTED priority 500 {
    
        set DEFAULT_POOL [LB::server pool]
    
    }
    
    when HTTP_REQUEST priority 500 {
    
        set HOST [string tolower [HTTP::host]]
        set URI [string tolower [HTTP::uri]]
    
        if { ${HOST} == "www.abc.com" } {
    
            HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI"
    
        } else {
            $DEFAULT_POOL
        }
    
    }

     

    If I am missunderstanding the request please provide a real world example of one of the requests or rewording the question so we can have a different approach to the issue at hand.