Forum Discussion

MSK_222682's avatar
Icon for Nimbostratus rankNimbostratus
May 06, 2016

How to forward the requests to another URL using iRule

Hi, I have a scenario wherein I have to forward all the incoming requests to a virtual server ( to another URL something like which hosts the maintenance page, so that users could see the maintenance page.

However, this should be transparent to the end user viz, they should not see in their browsers when accessing the virtual server in question.

Can anyone help me with the irule in this regard. P.S. I have tried the iFile but the maintnance page is only working for IE but not with Chrome & Mozilla.

Thanks in advance, MSK

2 Replies

  • hello,

    The best way is to apply the irule for maintenance on the VS directly. for example :


    when HTTP_REQUEST {
      if { [active_members $default_pool] < 1 } { 
        HTTP::respond 200 content [ifile get "/Common/maintenance.html"] noserver "Content-Type" "text/html" "Cache-Control" "no-cache, must-revalidate" 
    when LB_FAILED { 
          HTTP::respond 200 content [ifile get "/Common/maintenance.html"] noserver "Content-Type" "text/html" "Cache-Control" "no-cache, must-revalidate" 


    Otherwise, you can use the virtual command (e.g. virtual /Common/my_VS_Name)

  • Arie's avatar
    Icon for Altostratus rankAltostratus

    If it's a maintenance page you would want to use HTTP response code 503 (Service Unavailable) rather than a 200 (OK), per the RFC standards for HTTP.

    Using a 200 (OK) is risky. For instance, there's a chance that search engines will index the maintenance page. If any department is using external monitoring (e.g. Pingdom) those reports would incorrectly show that the site/pages were available.

    You can simply change the response code from 200 to 503:


    HTTP::respond 503 content [ifile get "/Common/maintenance.html"] noserver "Content-Type" "text/html" "Cache-Control" "no-cache, must-revalidate"