Jak korzystać z przepisywania adresów URL IIS z kompresją gzip

13

Próbowałem utworzyć reguły wychodzące w IIS 7.5 w systemie Windows 2008 R2 w witrynie z włączonymi statycznymi stronami HTML i włączoną kompresją.

Jeśli mam włączoną dowolną formę kompresji (statyczną lub dynamiczną), pojawia się ten błąd:

HTTP Error 500.52 - URL Rewrite Module Error. Outbound rewrite rules cannot
be applied when the content of the HTTP response is encoded ("gzip").

Wyłączenie kompresji nie jest tak naprawdę opcją ze względu na duży negatywny wpływ, jaki miałby na ładowanie strony.

Wyobrażam sobie, że każdy, kto używa wychodzących reguł przepisywania, napotka ten błąd, ponieważ zawsze chciałbyś mieć włączoną kompresję dla treści tekstowych.

Spojrzałem na kilka sugestii, jak to zrobić:

/programming/3713804/url-rewrite-outbound-rules-iis7/4363301#4363301

i

http://forums.iis.net/p/1165899/1937454.aspx#1937454

Ale nadal pojawia się ten sam błąd.

Czy ktoś ma to do pracy? Jeśli tak to jak?

mpipe3
źródło
Mam inny problem ... stackoverflow.com/questions/30806106/…
Deweloper
1
Dlaczego korzystasz z reguł przepisywania danych wychodzących? Czy możesz podać próbkę jednej z tych reguł dla kontekstu? Być może wystarczy zwykła reguła przepisywania?
Anthony Kolka,

Odpowiedzi:

1

Proszę odnieść się: https://blogs.msdn.microsoft.com/friis/2016/08/25/iis-with-url-rewrite-as-a-reverse-proxy-part-2-dealing-with-500-52 -status-kody /

Wychodzących reguł przepisywania nie można zastosować, gdy treść odpowiedzi HTTP jest zakodowana („gzip”).

Jest tak, ponieważ odpowiedzi przychodzące z serwera zaplecza korzystają z kompresji HTTP, a przepisywanie adresów URL nie może modyfikować odpowiedzi, która jest już skompresowana. Powoduje to błąd przetwarzania reguły wychodzącej, co powoduje kod statusu 500.52.

AKS
źródło