HTTP üst bilgilerini ve URL'sini Application Gateway
Application Gateway isteklerin ve yanıtların seçili içeriğini yeniden yazmana olanak sağlar. Bu özellik sayesinde URL'leri, sorgu dizesi parametrelerini çevirebilir, istek ve yanıt üst bilgilerini değiştirebilirsiniz. Ayrıca, URL'nin veya belirtilen üst bilgilerin yalnızca belirli koşullar karşııldığında yeniden yazıldığından emin olmak için koşullar eklemenize de olanak sağlar. Bu koşullar istek ve yanıt bilgilerine dayanır.
Not
HTTP üst bilgisi ve URL yeniden yazma özellikleri yalnızca Application Gateway v2 SKU'su için kullanılabilir
Desteklenen yeniden yazma türleri
İstek ve yanıt üst bilgileri
HTTP üst bilgileri, bir istemcinin ve sunucunun istek veya yanıtla ek bilgi iletir. Bu üst bilgileri yeniden yazarak, HSTS/ X-XSS-Protection gibi güvenlikle ilgili üst bilgi alanları ekleme, hassas bilgileri ortaya çıkaracak yanıt üst bilgisi alanlarını kaldırma ve bağlantı noktası bilgilerini X-Forwarded-For üst bilgilerinden kaldırma gibi önemli görevleri gerçekleştirebilirsiniz.
Application Gateway, istek ve yanıt paketleri istemci ile arka uç havuzları arasında gidip gelirken HTTP istek ve yanıt üst bilgileri eklemenize ya da mevcut bilgileri kaldırmanıza veya güncelleştirmenize olanak tanır.
İstek ve yanıt üst bilgilerini Application Gateway kullanarak yeniden Azure portal için buraya bakın.

Desteklenen üst bilgiler
Bağlantı ve Yükseltme üst bilgileri dışında isteklerde ve yanıtlarda tüm üst bilgileri yeniden yazabilirsiniz. Uygulama ağ geçidini kullanarak özel üst bilgiler oluşturabilir ve bunları bu üst bilgiler aracılığıyla yönlendirilen isteklere ve yanıtlara eklemek için de kullanabilirsiniz.
URL yolu ve sorgu dizesi
Url yeniden yazma özelliği Application Gateway şunları sebilirsiniz:
İstek URL'sinin ana bilgisayar adını, yolunu ve sorgu dizesini yeniden yazın
Dinleyicide yer alan tüm isteklerin URL'sini veya yalnızca ayar seçtiğiniz koşulların bir veya daha fazlası ile eşan isteklerin URL'sini yeniden yazmayı seçin. Bu koşullar, istek ve yanıt özelliklerine (istek, üst bilgi, yanıt üst bilgisi ve sunucu değişkenleri) bağlıdır.
Özgün URL'ye veya yeniden yazılan URL'ye göre isteği yönlendirmeyi (arka uç havuzunu seçin) seçin
Url'yi kullanarak url'yi Application Gateway yeniden Azure portal için buraya bakın.

Eylemleri yeniden yazma
Yeniden yazma eylemlerini kullanarak yeniden yazmak istediğiniz URL' yi, istek üst bilgilerini veya yanıt üst bilgilerini ve bunları yeniden yazmak istediğiniz yeni değeri belirtirsiniz. BIR URL'nin veya yeni ya da var olan bir üst bilginin değeri şu değer türlerine ayarlanmış olabilir:
- Metin
- İstek üst bilgisi. Bir istek üst bilgisi belirtmek için {http_req_ headerName } söz dizimsini kullan
- Yanıt üst bilgisi. Bir yanıt üst bilgisi belirtmek için {http_resp_ headerName } söz dizimsini kullan
- Sunucu değişkeni. Bir sunucu değişkeni belirtmek için {serverVariable} var_ belirtmeniz gerekir. Desteklenen sunucu değişkenleri listesine bakın
- Metin, istek üst bilgisi, yanıt üst bilgisi ve sunucu değişkeni birleşimi.
Koşulları Yeniden Yazma
HTTP(S) isteklerinin ve yanıtlarının içeriğini değerlendirmek ve yalnızca bir veya daha fazla koşullar karşı olduğunda yeniden yazma gerçekleştirmek için isteğe bağlı bir yapılandırma olan yeniden yazma koşullarını kullanabilirsiniz. Uygulama ağ geçidi, isteklerin ve yanıtların içeriğini değerlendirmek için şu tür değişkenleri kullanır:
- İstekte HTTP üst bilgileri
- Yanıtta HTTP üst bilgileri
- Application Gateway değişkenlerini yapılandırma
Belirtilen bir değişkenin mevcut olup olmadığını, belirtilen bir değişkenin belirli bir değerle eş olup olmadığını veya belirtilen bir değişkenin belirli bir desenle eş olup olmadığını değerlendirmek için bir koşul kullanabilirsiniz.
Desen Eşleştirme
Application Gateway desen eşleştirme için normal ifadeleri kullanır. Koşullarda normal ifade deseni eşleştirmesi ayarlamak için Perl Uyumlu Normal İfadeler (PCRE) kitaplığını kullanabilirsiniz. Normal ifade söz dizimi hakkında bilgi edinmek için Perl normal ifadeleri ana sayfasına bakın.
Yakalama
Daha sonra kullanmak üzere bir alt dizeyi yakalamak için, koşul regex tanımında alt öğenin çevresinde bu dizeyle eşleşen parantezleri koyabilirsiniz. İlk parantez çifti alt dizesini 1, ikinci çifti 2 olarak depolar ve bu şekilde devam ediyor. Ne kadar parantez kullanabilirsiniz? Perl, yakalanan bu dizeleri temsil etmek için daha fazla numaralı değişken tanımlamaya devam eder. Başvurudan bazı örnekler:
/(\d)(\d)/ # İki basamakla eşle, bunları 1 ve 2 gruplarına yakalayarak
/(\d+)/ # Bir veya daha fazla basamakla eşle, bunların hepsini grup 1'de yakalayarak
/(\d)+/ # Bir basamakla bir veya daha fazla kez eşler, son basamak grup 1'de yakalayarak
Yakalanana kadar, aşağıdaki biçimi kullanarak eylem kümesinde bu kodlara başvurabilirsiniz:
- bir istek üst bilgisi yakalaması için {http_req_headerName_groupNumber} kullan gerekir. Örneğin, {http_req_User-Agent_1} veya {http_req_User-Agent_2}
- Yanıt üst bilgisi yakalaması için {http_resp_headerName_groupNumber} kullan gerekir. Örneğin, {http_resp_Location_1} veya {http_resp_Location_2}
- Bir sunucu değişkeni için {var_serverVariableName_groupNumber} kullanabilirsiniz. Örneğin, {var_uri_path_1} veya {var_uri_path_2}
Değerin tamamını kullanmak için sayıdan bahsetmeniz gerekir. {http_req_headerName} biçimini groupNumber olmadan kullanın.
Sunucu değişkenleri
Application Gateway sunucu, istemciyle bağlantı ve bağlantıda geçerli istek hakkında yararlı bilgileri depolamak için sunucu değişkenlerini kullanır. Depolanan bilgilere örnek olarak istemcinin IP adresi ve web tarayıcısı türü dahildir. Sunucu değişkenleri dinamik olarak değişir, örneğin yeni bir sayfa yüklenirken veya form gönderildikleri zaman. Yeniden yazma koşullarını değerlendirmek ve üst bilgileri yeniden yazmak için bu değişkenleri kullanabilirsiniz. Üst bilgileri yeniden yazmak için sunucu değişkenlerinin değerini kullanmak için bu değişkenleri {serverVariableName} söz diziminde var_ gerekir
Application Gateway aşağıdaki sunucu değişkenlerini destekler:
| Değişken adı | Description |
|---|---|
| add_x_forwarded_for_proxy | değişkeniyle X-Forwarded-For istemci isteği üst bilgisi alanına (bu tablonun ilerleyen adımlarında açıklamaya client_ip bakın) IP1, IP2, IP3 gibi bir biçimde eklenir. X-Forwarded-For alanı istemci isteği üst bilgisinde değilse, add_x_forwarded_for_proxy değişkeni değişkenine $client_ip eşittir. Bu değişken özellikle, Application Gateway tarafından ayarlanmış X-Forwarded-For üst bilgisini yeniden yazmak istediğinizde kullanışlıdır; böylece üst bilgi bağlantı noktası bilgileri olmadan yalnızca IP adresini içerir. |
| ciphers_supported | İstemci tarafından desteklenen şifrelemelerin listesi. |
| ciphers_used | TlS bağlantısı kurmak için kullanılan şifreleme dizesi. |
| client_ip | Uygulama ağ geçidinin isteği aldığı istemcinin IP adresi. Uygulama ağ geçidi ve kaynak istemciden önce bir ters ara sunucu varsa, client_ip ters proxy'nin IP adresini geri döner. |
| client_port | İstemci bağlantı noktası. |
| client_tcp_rtt | İstemci TCP bağlantısı hakkında bilgi. TCP_INFO yuva seçeneğini destekleyen sistemlerde kullanılabilir. |
| client_user | HTTP kimlik doğrulaması kullanılırken, kimlik doğrulaması için sağlanan kullanıcı adı. |
| konak | Bu öncelik sırasına göre: İstek satırı ana bilgisayar adı, Konak isteği üst bilgisi alanından ana bilgisayar adı veya bir istekle eşleşen sunucu adı. Örnek: http://contoso.com:8080/article.aspx?id=123&title=fabrikam İstekte, konak değeri şu şekilde olur: contoso.com |
| cookie_ adı | Tanımlama bilgisinin adı. |
| http_method | URL isteğini yapmak için kullanılan yöntem. Örneğin, GET veya POST. |
| http_status | Oturum durumu. Örneğin, 200, 400 veya 403. |
| http_version | İstek Protokolü. Genellikle HTTP/1.0, HTTP/1.1 veya HTTP/2.0. |
| query_string | İstenen URL 'de "?" öğesini izleyen değişken/değer çiftleri listesi. Örnek: istekte http://contoso.com:8080/article.aspx?id=123&title=fabrikam query_string değer olacaktır id=123&title=fabrikam |
| received_bytes | İsteğin uzunluğu (istek satırı, üst bilgi ve istek gövdesi dahil). |
| request_query | İstek satırındaki bağımsız değişkenler. |
| request_scheme | İstek düzeni: http veya https. |
| request_uri | Tüm özgün istek URI 'SI (bağımsız değişkenlerle). Örnek: istekte http://contoso.com:8080/article.aspx?id=123&title=fabrikam* request_uri değer olacaktır /article.aspx?id=123&title=fabrikam |
| sent_bytes | Bir istemciye gönderilen bayt sayısı. |
| server_port | Bir isteği kabul eden sunucunun bağlantı noktası. |
| ssl_connection_protocol | Kurulan bir TLS bağlantısının protokolü. |
| ssl_enabled | Bağlantı, TLS modunda çalışıyorsa "açık". Aksi takdirde, boş bir dize. |
| uri_path | Web istemcisinin erişmek istediği konaktaki belirli kaynağı tanımlar. Bu, istek URI 'sinin bağımsız değişkenler olmadan bölümüdür. Örnek: istekte http://contoso.com:8080/article.aspx?id=123&title=fabrikam uri_path değer olacaktır /article.aspx |
Karşılıklı kimlik doğrulama sunucusu değişkenleri (Önizleme)
Application Gateway, karşılıklı kimlik doğrulama senaryolarında aşağıdaki sunucu değişkenlerini destekler. Bu sunucu değişkenlerini diğer sunucu değişkenleriyle aynı şekilde kullanın.
| Değişken adı | Description |
|---|---|
| client_certificate | Kurulan bir SSL bağlantısı için pek biçimindeki istemci sertifikası. |
| client_certificate_end_date | İstemci sertifikasının bitiş tarihi. |
| client_certificate_fingerprint | Kurulan bir SSL bağlantısı için istemci sertifikasının SHA1 parmak izi. |
| client_certificate_issuer | Kurulan bir SSL bağlantısı için istemci sertifikasının "verenin DN 'si" dizesi. |
| client_certificate_serial | Kurulan bir SSL bağlantısı için istemci sertifikasının seri numarası. |
| client_certificate_start_date | İstemci sertifikasının başlangıç tarihi. |
| client_certificate_subject | Kurulan bir SSL bağlantısı için istemci sertifikasının "konu DN" dizesi. |
| client_certificate_verification | İstemci sertifikası doğrulamasının sonucu: başarılı, başarısız: <reason>, ya da bir sertifika yoksa none . |
Yeniden yazma yapılandırması
Bir yeniden yazma kuralı yapılandırmak için bir yeniden yazma kuralı kümesi oluşturmanız ve buna yeniden yazma kuralı yapılandırmasını eklemeniz gerekir.
Bir yeniden yazma kuralı kümesi şunları içerir:
İstek yönlendirme kuralı ilişkilendirmesi: Yeniden yazma yapılandırması, kaynak dinleyicisiyle yönlendirme kuralı üzerinden ilişkilendirilir. Temel bir yönlendirme kuralı kullandığınızda, yeniden yazma yapılandırması bir kaynak dinleyicisi ile ilişkilendirilir ve genel bir üst bilgi yeniden yazma işlemi olur. Yol tabanlı bir yönlendirme kuralı kullandığınızda, URL yolu eşlemesinde yeniden yazma yapılandırması tanımlanmıştır. Bu durumda, yalnızca bir sitenin belirli yol alanı için geçerlidir. Birden çok yeniden yazma kümesi oluşturabilir ve her bir yeniden yazma kümesini birden çok dinleyiciyle uygulayabilirsiniz. Ancak belirli bir dinleyiciye yalnızca bir yeniden yazma kümesi uygulayabilirsiniz.
Yeniden yazma koşulu: isteğe bağlı bir yapılandırmadır. Yeniden yazma koşulları, HTTP (S) isteklerinin ve yanıtlarının içeriğini değerlendirir. HTTP (S) isteği veya yanıtı yeniden yazma koşuluyla eşleşiyorsa, yeniden yazma eylemi gerçekleşir. Birden fazla koşulu bir eylemle ilişkilendirirseniz, eylem yalnızca tüm koşullar karşılandığında oluşur. Diğer bir deyişle, işlem mantıksal ve işlemdir.
Yeniden yazma türü: kullanılabilir 3 tür yeniden yazma vardır:
- İstek üst bilgilerini yeniden yazma
- Yanıt üst bilgilerini yeniden yazma
- URL bileşenlerini yeniden yazma
- URL yolu: yolun yeniden yazılması için gereken değer.
- URL sorgu dizesi: sorgu dizesinin yeniden yazılması için gereken değer.
- Yol haritasını yeniden değerlendir: URL yol eşlemesinin yeniden değerlendirilip değerlendirilmeyeceğini anlamak için kullanılır. İşaretlenmediyse, URL yolu eşlemesindeki yol düzeniyle eşleştirmek için özgün URL yolu kullanılacaktır. True olarak ayarlanırsa, URL yolu eşlemesi yeniden yazan yol ile eşleştirmeyi denetlemek için yeniden değerlendirilir. Bu anahtarı etkinleştirmek, isteği farklı bir arka uç havuzuna yeniden yazmaya yönlendirmenize yardımcı olur.
Yapılandırma ortak sınırları yeniden yaz
Temel istek yönlendirme kuralları için ' yol haritasını yeniden değerlendir ' kullanımına izin verilmez. Bu, temel bir yönlendirme kuralı için sonsuz değerlendirme döngüsünü önlemektir.
Yol tabanlı yönlendirme kuralı için sonsuz değerlendirme döngüsünü engellemek üzere yol tabanlı yönlendirme kuralları için ' yeniden değerlendir yol haritası ' etkin olmayan en az 1 Koşullu yeniden yazma kuralı veya 1 yeniden yazma kuralı olması gerekir.
Bir döngünün istemci girdilerine göre dinamik olarak oluşturulması durumunda gelen istekler 500 hata koduyla sonlandırılır. Application Gateway, böyle bir senaryoda herhangi bir düşüş olmadan diğer isteklere hizmet vermeye devam edecektir.
Web uygulaması güvenlik duvarı (WAF_v2 SKU) ile URL yeniden yazma veya konak üstbilgi yeniden yazma kullanma
URL yeniden yazma veya konak üstbilgi yeniden yazma 'yı yapılandırdığınızda, WAF değerlendirmesi istek üstbilgisinde veya URL parametrelerinde değiştirildikten sonra olur (yeniden yazma sonrası). Application Gateway URL yeniden yazma veya ana bilgisayar üst bilgisi yeniden yazma yapılandırmasını kaldırdığınızda,, üst bilgi yeniden yazma işleminden önce WAF değerlendirmesi yapılır (önceden yazma). Bu sıra, WAF kurallarının arka uç havuzunuz tarafından alınacak son isteğe uygulanmasını sağlar.
Örneğin, üstbilgi için aşağıdaki üst bilgi yeniden yazma kuralına sahip olduğunu varsayalım "Accept" : "text/html" . üst bilgi değeri "Accept" öğesine eşitse "text/html" , değerini olarak yeniden yazın "image/png" .
Burada, yalnızca üst bilgi yeniden yazma işlemi yapılandırıldığında WAF değerlendirmesi tarihinde yapılır "Accept" : "text/html" . Ancak URL yeniden yazma veya ana bilgisayar üst bilgisi yeniden yazma 'yı yapılandırdığınızda, WAF değerlendirmesi tarihinde yapılır "Accept" : "image/png" .
Not
WAF Application Gateway CPU kullanımında küçük bir artışa neden olması beklenen URL yeniden yazma işlemleri beklenmektedir. WAF Application Gateway URL yeniden yazma kurallarını etkinleştirdikten sonra kısa bir süre boyunca CPU kullanım ölçümünü izlemeniz önerilir.
Üst bilgi yeniden yazma için genel senaryolar
Bağlantı noktası bilgilerini X-Iletilmiş-for üst bilgisinden kaldır
Application Gateway, istekleri arka uca iletmeden önce tüm isteklere X-Iletilmiş bir üst bilgi ekler. Bu üst bilgi, IP bağlantı noktalarının virgülle ayrılmış listesidir. Arka uç sunucularının yalnızca IP adreslerini içermesi için üstbilgilere ihtiyacı olan senaryolar olabilir. Bağlantı noktası bilgilerini X-Iletilmiş-for üst bilgisinden kaldırmak için üstbilgi yeniden yazma kullanabilirsiniz. Bunu yapmanın bir yolu, üst bilgiyi add_x_forwarded_for_proxy sunucu değişkenine ayarlamaya yönelik bir yoldur. Alternatif olarak, client_ip değişkenini de kullanabilirsiniz:

Yeniden yönlendirme URL 'sini değiştirme
Bir arka uç uygulaması yeniden yönlendirme yanıtı gönderdiğinde, istemciyi arka uç uygulaması tarafından belirtilene göre farklı bir URL 'ye yönlendirmek isteyebilirsiniz. Örneğin, bir uygulama hizmeti bir uygulama ağ geçidinin arkasında barındırılıyorsa ve istemcinin göreli yoluna yeniden yönlendirme yapması için bunu yapmak isteyebilirsiniz. (Örneğin, contoso.azurewebsites.net/path1 öğesinden contoso.azurewebsites.net/path2 'e yeniden yönlendirme.)
App Service çok kiracılı bir hizmet olduğundan, isteği doğru uç noktaya yönlendirmek için istekteki ana bilgisayar üst bilgisini kullanır. Uygulama Hizmetleri * , Application Gateway 'in etki alanı adından (contoso.azurewebsites.net contoso.com) farklı olan varsayılan bir. azurewebsites.net etki alanı adına sahiptir (deyin). İstemciden gelen özgün istek ana bilgisayar adı olarak uygulama ağ geçidinin etki alanı adına (contoso.com) sahip olduğundan, Application Gateway ana bilgisayar adını contoso.azurewebsites.net olarak değiştirir. Bu değişiklik, App Service 'in isteği doğru uç noktaya yönlendirebilmesi için yapar.
App Service bir yeniden yönlendirme yanıtı gönderdiğinde, uygulamanın konum üstbilgisindeki ana bilgisayar adını uygulama ağ geçidinden aldığı istekte olduğu gibi kullanır. Bu nedenle, istemci, contoso.azurewebsites.net/path2 uygulama ağ geçidi () boyunca değil, isteği doğrudan bir hale getirir contoso.com/path2 . Application Gateway 'i atlamak istenmez.
Konum üstbilgisindeki ana bilgisayar adını Application Gateway 'in etki alanı adına ayarlayarak bu sorunu çözebilirsiniz.
Burada, ana bilgisayar adını değiştirme adımları verilmiştir:
- Yanıttaki konum üstbilgisinin azurewebsites.net içerip içermeyeceğini değerlendiren bir koşul içeren bir yeniden yazma kuralı oluşturun. Kalıbı girin
(https?):\/\/.*azurewebsites\.net(.*)$. - Uygulama ağ geçidinin ana bilgisayar adına sahip olması için konum başlığını yeniden yazmak üzere bir eylem gerçekleştirin. Bunu
{http_resp_Location_1}://contoso.com{http_resp_Location_2}, üst bilgi değeri olarak girerek yapın. Alternatif olarak,hostana bilgisayar adını özgün istekle eşleşecek şekilde ayarlamak için sunucu değişkenini de kullanabilirsiniz.

Güvenlik açıklarını engellemek için güvenlik HTTP üst bilgilerini uygulayın
Uygulama yanıtında gerekli üst bilgileri uygulayarak çeşitli güvenlik açıklarını giderebilirsiniz. Bu güvenlik üstbilgileri, X-XSS-Protection, katı aktarım güvenliği ve Content-Security-Policy ' i içerir. Tüm yanıtlar için bu üst bilgileri ayarlamak üzere Application Gateway kullanabilirsiniz.

İstenmeyen üstbilgileri Sil
Bir HTTP yanıtından hassas bilgileri açığa çıkarmak için üstbilgileri kaldırmak isteyebilirsiniz. Örneğin, arka uç sunucu adı, işletim sistemi veya kitaplık ayrıntıları gibi bilgileri kaldırmak isteyebilirsiniz. Bu üst bilgileri kaldırmak için Application Gateway kullanabilirsiniz:

Üstbilginin varolup olmadığını denetle
Bir üst bilgi veya sunucu değişkeni varlığı için bir HTTP isteği veya yanıt üst bilgisini değerlendirebilirsiniz. Bu değerlendirme yalnızca belirli bir başlık mevcut olduğunda bir üstbilgi yeniden yazma işlemi gerçekleştirmek istediğinizde faydalıdır.

URL yeniden yazma için genel senaryolar
Parametre tabanlı yol seçimi
Arka uç havuzunu bir üstbilginin değerine, URL 'nin bir bölümüne veya istekteki sorgu dizesine göre seçmek istediğiniz senaryoları gerçekleştirmek için, URL yeniden yazma özelliği ve yol tabanlı yönlendirme birleşimini kullanabilirsiniz. Örneğin, bir alışveriş web siteniz varsa ve ürün kategorisi URL 'de sorgu dizesi olarak geçirilirse ve isteği sorgu dizesine göre arka uca dolaştırmak istiyorsanız:
Adım: Aşağıdaki görüntüde gösterildiği gibi bir yol haritası oluşturun
2. adım (a): 3 yeniden yazma kuralına sahip bir yeniden yazma kümesi oluşturun:
İlk kural, category = showes için query_string değişkenini denetleyen ve URL yolunu/listing1 'e yeniden veren ve yol haritasını yeniden değerlendiren bir eyleme sahiptir
İkinci kural, category = torlar için query_string değişkenini denetleyen ve URL yolunu/listing2 'e yeniden veren ve yol haritasını yeniden değerlendiren bir eyleme sahiptir
Üçüncü kural, category = aksesuarları için query_string değişkenini denetleyen ve URL yolunu/listing3 'e yeniden veren ve yol haritasını yeniden değerlendiren bir eyleme sahip olan bir koşula sahiptir
2. adım (b): Bu yeniden yazma kümesini yukarıdaki yol tabanlı kuralın varsayılan yoluyla ilişkilendirin
Artık Kullanıcı contoso.com/Listing?category=any isterse, yol haritadaki yol desenlerinden hiçbiri (/listing1,/listing2,/listing3) eşleşmesinden bu yana varsayılan yol ile eşleştirilir. Yukarıdaki yeniden yazma kümesini bu yol ile ilişkilendirdikten sonra, bu yeniden yazma kümesi değerlendirilecek. Sorgu dizesi bu yeniden yazma kümesindeki 3 yeniden yazma kuralındaki koşulla eşleşmediğinden, yeniden yazma eylemi gerçekleşmeyecek ve bu nedenle, istek varsayılan yol ( GenericList) ile ilişkili arka uca değişmeden yönlendirilir.
Kullanıcı contoso.com/Listing?category=Shoes isterse, varsayılan yol eşleştirilir. Ancak, bu durumda, ilk kuraldaki koşul eşleşmeyecektir ve bu nedenle, koşulla ilişkili eylem, URL yolunu/listing1 olarak yeniden yazıp yol eşlemesini yeniden değerlendilecektir. Path-Map yeniden değerlendirildiğinde, istek artık, /listing1 düzeniyle ilişkili yol ile eşleşir ve Istek, Showeslistbackendpool olan bu Düzenle ilişkili olan arka uca yönlendirilir.
Not
Bu senaryo, tanımlanan koşullara bağlı olarak herhangi bir üst bilgi veya tanımlama bilgisi değeri, URL yolu, sorgu dizesi veya sunucu değişkenine genişletilebilir ve temelde istekleri bu koşullara göre yönlendirmenizi sağlar.
Sorgu dizesi parametrelerini URL 'ye göre yeniden yaz
Kullanıcı görünür bağlantısının basit ve okunabilir olması gereken bir alışveriş web sitesinin senaryosunu göz önünde bulundurun, ancak arka uç sunucusunun doğru içeriği göstermesi için sorgu dizesi parametrelerine ihtiyacı vardır.
Bu durumda Application Gateway URL 'den parametreleri yakalayabilir ve URL 'lerden sorgu dizesi anahtar-değer çiftleri ekleyebilir. Örneğin, kullanıcının için yeniden yazmak istediğini varsayalım, https://www.contoso.com/fashion/shirts https://www.contoso.com/buy.aspx?category=fashion&product=shirts Bu, aşağıdaki URL yeniden yazma yapılandırması aracılığıyla elde edilebilir.
Koşul -sunucu değişkeni uri_path , modele eşitse /(.+)/(.+)
Eylem -URL yolunu buy.aspx ve sorgu dizesini ayarla category={var_uri_path_1}&product={var_uri_path_2}
Yukarıda açıklanan senaryoya ulaşmak için adım adım kılavuz için bkz. Azure Portal kullanarak URL 'yi Application Gateway yeniden yazma
URL yeniden yazma vs URL yönlendirmesi
URL yeniden yazma durumunda, istek arka uca gönderilmeden önce URL 'YI yeniden yazar Application Gateway. Bu, değişiklikler kullanıcıdan gizlendiğinden kullanıcıların tarayıcıda gördüklerinizi değiştirmeyecektir.
URL yeniden yönlendirme durumunda, Application Gateway istemciye yeni URL ile yeniden yönlendirme yanıtı gönderir. Bu durumda, istemcinin isteğini yeniden yönlendirmeye sunulan yeni URL 'ye yeniden göndermesi gerekir. Kullanıcının tarayıcıda gördüğü URL yeni URL 'ye güncelleştirilecek.
Sınırlamalar
- Bir yanıtta aynı ada sahip birden fazla üst bilgi varsa, bu üst bilgilerden birinin değerini yeniden yazmak yanıttaki diğer üstbilgilerin bırakılmasına neden olur. Yanıt içinde birden fazla Set-Cookie üst bilgisine sahip olabileceğinizden bu durum genellikle Set-Cookie üst bilgisinde meydana gelebilir. Bu tür bir senaryo, uygulama ağ geçidi ile uygulama hizmeti kullanırken ve uygulama ağ geçidinde tanımlama bilgisi tabanlı oturum benzeşimi yapılandırmış olduğunuz bir senaryodur. Bu durumda, yanıt iki Set-Cookie üst bilgi içerir: App Service tarafından kullanılan, örneğin:
Set-Cookie: ARRAffinity=ba127f1caf6ac822b2347cc18bba0364d699ca1ad44d20e0ec01ea80cda2a735;Path=/;HttpOnly;Domain=sitename.azurewebsites.netve uygulama ağ geçidi benzeşimi için bir diğeri (örneğin,)Set-Cookie: ApplicationGatewayAffinity=c1a2bd51lfd396387f96bl9cc3d2c516; Path=/. Bu senaryodaki Set-Cookie başlıklarından birini yeniden yazmak, diğer Set-Cookie üstbilgisinin yanıttan kaldırılmasına neden olabilir. - Uygulama ağ geçidi istekleri yeniden yönlendirmek veya özel bir hata sayfası göstermek üzere yapılandırıldığında, yeniden yazar desteklenmez.
- Üst bilgi adları, RFC 7230' de tanımlanan alfasayısal karakterleri ve belirli sembolleri içerebilir. Şu anda üstbilgi adlarında alt çizgi ( _ ) özel karakterini desteklemiyoruz.
- Bağlantı ve yükseltme üstbilgileri yeniden yazılamıyor