Forum Discussion

javier_diaz_379's avatar
Icon for Nimbostratus rankNimbostratus
May 04, 2011

Rewrite URL

I want to accomplish the following:


Currently the web page we're serving both www. and non www.


I need a permanent redirect, so when a user requests the non www. version of the webpage it redirect to www.version







3 Replies

  • Hi Javier,

    Here is an iRule you can use to send a 301 redirect to the same host and URI with www. prepended:

    when HTTP_REQUEST {
        Check if Host header value has at least one alpha character and doesn't already start with www.
       if {[string match {[a-zA-Z]} [HTTP::host]] and not ([string tolower [HTTP::host]] starts_with "www."}{
           Send a 301 redirect to the same host and URI with www. prepended
          HTTP::respond 301 Location "http://www.[HTTP::host][HTTP::uri]"

    If you are using this on an HTTPS VS and you don't have a cert valid for both and, the client will get a mismatched cert warning before the iRule triggers.

  • You didn't specify the Protocol, so here is an example of an iRule that you could use on an HTTP Virtual Server to redirect to HTTPS and add a WWW if needed:

    when HTTP_REQUEST {
       if {[HTTP::host] starts_with "www."} {
          HTTP::redirect "https://[HTTP::host][HTTP::uri]"
       } else {
          HTTP::redirect "https://www.[HTTP::host][HTTP::uri]"