空主机名的Azure应用程序网关重定向

时间:2019-04-01 15:39:44

标签: azure networking azure-virtual-network f5 azure-application-gateway

我创建了一个应用程序网关,该网关需要完成我以前的资源(F5)的工作。

As a listener I use a hostname: hostname.stackoverflow.com that listens on 443

As a Http Setting I am using a specific port being 4443 

As a BackEnd pool I use the URL/FQDN of my dev VM.

如果我在VNET中创建VM并使用应用程序网关的ip将“ hostname.stackoverflow.com”添加到主机文件中,这将完全有效。

现在,我想进一步介绍并向我的Application Gateway添加路径。 目的是,如果我使用“ hostname.stackoverflow.com”,则需要将其重定向到“ Hostname.stackoverflow.com/login.aspx?guestlogin”。

到目前为止,我已经尝试了以下方法。

  • 将“ /login.aspx?guestLogin”添加到HTTPS设置中,如下所示。 enter image description here

当我在VM中尝试此操作时。 URL更改了,但是我添加的路径没有以正确的方式添加,这就是我得到的: enter image description here

所以这让我认为重写后端路径可能不是正确的方法。 想要创建将我的“ hostname.stackoverflow.com”重定向到“ hostname.stackoverflow.com/login.aspx?guestLogin”的重定向规则,但是在应用程序网关的设置中,我需要提供源路径(意思是:我无法从空主机名重定向到我认为的新网址)

对于Azure来说我是一个新手,对于应用程序网关我还是一个新手。我做错了什么吗?有更好的方法吗?

我需要在Application Gateway中获得的iRule如下。

  if { [string tolower [HTTP::host]] equals "hostname.stackoverflow.com" } {

        if {[HTTP::path] eq "/"} {
                 HTTP::redirect "login.aspx?guestLogin"
    }
    elseif {[string tolower [HTTP::uri]] starts_with "/login.aspx?id="} {
                 set tail [string range [HTTP::uri] 12 end]
                 HTTP::redirect "login.aspx?guestLogin&$tail"
    }
  pool default.pool
  }

0 个答案:

没有答案