Как перенаправить с помощью F5 iRules с переменной в URL - PullRequest
0 голосов
/ 19 декабря 2018

Привет, я новичок в F5 iRule.

Я пытаюсь перенаправить https://website1.com/userid=1234 на https://website2.com/userid=1234

, чтобы любое значение могло использовать идентификатор пользователяПосле переназначения они будут перенесены.

Я думаю, значение идентификатора пользователя должно быть установлено в переменную.Может кто-нибудь поделиться, какой код использовать?Спасибо!

Так что https://website1.com/userid=8888 должен перейти к https://website2.com/userid=8888 и т. Д.

1 Ответ

0 голосов
/ 20 декабря 2018

Вам не нужна переменная, если этот шаблон соответствует.Вот простое правило:

when HTTP_REQUEST {
  if { [HTTP::host] eq "website1.com" } {
    HTTP::redirect https://websitesite2.com[HTTP::uri]
  }
}

Однако, если вы используете v11.4 +, вам действительно следует использовать локальную политику трафика, так как она более эффективна как встроенная функция TMOS.

ltm policy sample_site_redirect {
    controls { forwarding }
    last-modified 2018-12-20:09:33:02
    requires { http }
    rules {
        full_uri_redirect {
            actions {
                0 {
                    http-reply
                    redirect
                    location tcl:https://website2.com[HTTP::uri]
                }
            }
            conditions {
                0 {
                    http-host
                    host
                    values { website1.com }
                }
            }
        }
    }
    status published
    strategy first-match
}

если весь трафик к виртуальному серверу, к которому присоединено это правило или политика, предназначен только для веб-сайта1, вы можете устранить эти условия.Я не хотел предполагать.Если вы хотите сопоставить только URI, начинающийся с / user = и перенаправить его, вы можете сделать это следующим образом:

when HTTP_REQUEST {
  if { ([HTTP::host] eq "website1.com") && ([string tolower [HTTP::uri]] starts_with "/user=") } {
    HTTP::redirect https://website2.com[HTTP::uri]
  }
}
...