URL 重寫
Azure Front Door 提供 URL 重寫的支援,可讓您修改路由至來源的要求路徑。 這項功能強大的功能可讓您定義條件,以判斷何時應重寫 URL 或指定的標頭。 這些條件是以要求和回應中提供的資訊為基礎。
藉由使用 URL 重寫,您可以根據使用者要求的因素,將終端使用者重新導向至不同的來源,例如其裝置類型或他們要求的檔案類型。 您可以在規則集內輕鬆設定 URL 重寫動作,讓您更精細地控制路由行為。
來源模式
來源 模式 代表您想要取代之初始要求中的URL路徑。 目前,來源模式會使用前置詞型比對方法。 若要符合所有 URL 路徑,您可以將正斜線 (/
) 指定為來源模式的值。
在 URL 重寫動作的內容中,只有在路由組態中要比對的模式之後,才會考慮來源模式的路徑。 例如,如果您具有的傳入 URL 格式contoso.com/pattern-to-match/source-pattern
,規則集只會/source-pattern
將 視為要重寫的來源模式。 套用 URL 重寫之後,傳出 URL 格式會是 contoso.com/pattern-to-match/destination
。
如果您需要移除 /pattern-to-match
URL 的區段,您可以將路由組態中原始群組的原點路徑設定為 /
。
Destination
目的地路徑代表取代來源模式的路徑。 例如,如果要求 URL 路徑為 contoso.com/foo/1.jpg
,且來源模式為 /foo/
,則指定目的地做為 /bar/
從 contoso.com/bar/1.jpg
來源提供的內容。
保留未比對的路徑
保留不相符的路徑可讓您控制處理來源模式之後剩餘路徑的方式。 將保留不相符的路徑設定為 [是],其餘路徑會附加至新路徑。 另一方面,將它設定為 [否 ] (預設值)將會移除來源模式之後的剩餘路徑。
以下範例示範保留不相符路徑的行為:
保留未比對的路徑 | 來源模式 | Destination | 傳入要求 | 從原點提供的內容 |
---|---|---|---|---|
Yes | / | /foo/ | contoso.com/sub/1.jpg | /foo/sub/1.jpg |
Yes | /sub/ | /foo/ | contoso.com/sub/image/1.jpg | /foo/image/1.jpg |
No | /sub/ | /foo/2.jpg | contoso.com/sub/image/1.jpg | /foo/2.jpg |
重要
Azure Front Door (傳統) 將於 2027 年 3 月 31 日遭到淘汰。 為了避免任何服務中斷,請務必在 2027 年 3 月之前,將 Azure Front Door (傳統) 設定檔移轉至 Azure Front Door 標準或進階層。 如需詳細資訊,請參閱 Azure Front Door (傳統版) 淘汰。
Azure Front Door (傳統)藉由 設定轉送路由類型規則時設定自定義轉送路徑 ,提供 URL 重寫的支援。 根據預設,如果只定義正斜線 (/*
) ,Front Door 會復寫轉送要求中的傳入 URL 路徑。 轉送要求中使用的主機標頭是以所選後端的組態為基礎。 如需詳細資訊,請參閱 後端主機標頭 檔。
URL 重寫的主要層面在於,使用自定義轉送路徑搭配通配符比對時,能夠將傳入路徑的任何相符部分複製到轉送路徑。 下表說明使用的自定義轉送路徑時傳入要求和對應的轉送路徑 /fwd/
範例。 表示為 a/b/c 的區段代表取代通配符相符的部分。
傳入 URL 路徑 | 比對路徑 | 自訂轉送路徑 | 轉送路徑 |
---|---|---|---|
/foo/a/b/c | /foo/* | /fwd/ | /fwd/a/b/c |
URL 重寫範例
以設定下列前端主機與路徑組合的路由規則為例:
主機 | 路徑 |
---|---|
www.contoso.com | /* |
/foo | |
/foo/* | |
/foo/bar/* |
下表說明傳入要求的範例及其對應的最特定比對路由。 它也提供自定義轉送路徑和所產生轉送路徑的範例。
例如,請考慮數據表的第二個數據列。 如果傳入要求是 www.contoso.com/sub
,且自訂轉送路徑設定為 /
,則轉送路徑會是 /sub
。 不過,如果自訂轉送路徑設定為 /fwd/
,則轉送路徑會是 /fwd/sub
。 路徑的強調部分會指出通配符相符部分。
傳入要求 | 最明確的相符路徑 | / | /fwd/ | /foo/ | /foo/bar/ |
---|---|---|---|---|---|
www.contoso.com/ | /* | / | /fwd/ | /foo/ | /foo/bar/ |
www.contoso.com/sub | /* | /sub | /fwd/sub | /foo/sub | /foo/bar/sub |
www.contoso.com/a/b/c | /* | /a/b/c | /fwd/a/b/c | /foo/a/b/c | /foo/bar/a/b/c |
www.contoso.com/foo | /foo | / | /fwd/ | /foo/ | /foo/bar/ |
www.contoso.com/foo/ | /foo/* | / | /fwd/ | /foo/ | /foo/bar/ |
www.contoso.com/foo/bar | /foo/* | /bar | /fwd/bar | /foo/bar | /foo/bar/bar |
注意
Azure Front Door (傳統) 僅支援從一個靜態路徑到另一個靜態路徑的 URL 重寫。 Azure Front Door 標準和進階支援保留不相符的路徑。 如需詳細資訊,請參閱保留不相符的路徑。
選擇性設定
快取設定 - 如果停用或未指定,則符合此路由規則的要求不會嘗試使用快取內容,而是一律從後端擷取。 如需詳細資訊,請參閱使用 Azure Front Door 進行快取。
下一步
- 了解如何建立 Azure Front Door 設定檔。
- 深入了解 Azure Front Door 規則集
- 了解 Azure Front Door 路由架構。