Forum Discussion

KJ_50941's avatar
KJ_50941
Icon for Nimbostratus rankNimbostratus
Jun 26, 2014

irule redirect or rewrite

Hi

 

I need an irule to redirect from shortname: https://example to https://example.com/test

 

I used below irule , however shortname doesn't work, but if I type fully qualified domain works just fine.

 

when HTTP_REQUEST { if { [string tolower [HTTP::host]] eq "/" } { HTTP::redirect "https://example.com/test" } }

 

Thx , all

 

  • so to be more specific if user type: https://example needs to be resolve to https://example.com/test in the address bar for the application to work.
  • Try this:

     

    when HTTP_REQUEST { if { [string tolower [HTTP::host]] eq "example" } { HTTP::redirect "https://example.com/test" } }

     

    • KJ_50941's avatar
      KJ_50941
      Icon for Nimbostratus rankNimbostratus
      I try that before not working, I am wondering if that needs to be done on the server site?
    • Cory_50405's avatar
      Cory_50405
      Icon for Noctilucent rankNoctilucent
      If the exact HTTP host they are trying to access is "example", then the iRule will work. This assumes that you are terminating SSL on this virtual server and have an HTTP profile applied to the virtual server. Otherwise, you won't have the visibility into the layer 7 HTTP data in order to do the comparison.
    • KJ_50941's avatar
      KJ_50941
      Icon for Nimbostratus rankNimbostratus
      we have two hosts behind 443 VIP with SSL termination , requirement is if user type https://example must to resolved to FQN--> https://example.com/test. if I type https://example.com it will redirect fine to /test. is just short name ( example) doesn't work. sorry for long explanation.
  • It sounds like DNS is resolving as intended. Are you certain your iRule is matching on 'example'? Try putting a logging statement into the iRule and see if anything shows up in /var/log/ltm:

    when HTTP_REQUEST { 
     if { [string tolower [HTTP::host]] eq "example" } { 
      log local0. "Matched example host, redirecting"
      HTTP::redirect "https://example.com/test" 
     } 
    }
    
    • KJ_50941's avatar
      KJ_50941
      Icon for Nimbostratus rankNimbostratus
      I put exact irule for logging, however I am not seeing it when accessing F5 VIP.
    • KJ_50941's avatar
      KJ_50941
      Icon for Nimbostratus rankNimbostratus
      I did tecpdump , and I can only see it when I am using FQDN in my browser.nothing for short name. what does that mean? tcpdump -ni 0.0 host 192.168.110 and 172.16.1.10 192.168.1.10 is F5 vip and 172.16.1.10 is my pc. Thx
    • Cory_50405's avatar
      Cory_50405
      Icon for Noctilucent rankNoctilucent
      So then is 'example' getting CNAME'd to example.com? Could be that this is the case, and when the HTTP request arrives at your LTM, the host header specifies example.com and the iRule won't match.