URL 重寫

Azure Front Door 提供 URL 重寫的支援,可讓您修改路由至來源的要求路徑。 這項功能強大的功能可讓您定義條件,以判斷何時應重寫 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 進行快取

下一步