Wir versuchen, den Header "host" mit der Überschrift "X-CF-ORIGIN" neu zu schreiben - dies funktioniert jedoch lokal im App-Service. Alle Protokolle zeigen an, dass es funktioniert hat, aber wir scheinen den Effekt nicht zu sehen.Azure-App-Dienst applicationHost.config Servervariable einstellen funktioniert, funktioniert aber nicht
Wir erwarten, einen 500 Fehler für einen falschen HOST-Header zu erhalten, jedoch wird die Website so aufgelöst, als ob der Host-Header nicht geändert wurde.
Auch unsere XDT-Transformation zeigt an, dass es funktioniert hat (siehe unten).
This was initially raised on Kudu Github aber wurden hier für Azure App Service IIS Fragen gerichtet.
Ein Codebeispiel: https://github.com/Workshop2/webforms-host-header-rewrite-spike
anschauliches Beispiel: http://webforms-fun.azurewebsites.net/ mit XDT verwandeln
Unsere Rewrite-Regel:
<rule name="CDN Host Header Rewrite" stopProcessing="false">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_X_CF_ORIGIN}" pattern="(.+)" />
</conditions>
<serverVariables>
<set name="HTTP_HOST" value="{C:1}" />
</serverVariables>
<action type="None" />
</rule>
Unsere XDT-Transformation:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="HTTP_HOST" xdt:Transform="InsertIfMissing" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>
applicationHost (via IIS Manager gefunden):
<rewrite>
<allowedServerVariables>
<add name="HTTP_HOST" />
</allowedServerVariables>
<globalRules />
<outboundRules />
<providers />
<rewriteMaps />
<rules />
</rewrite>
Anforderungsfehler Tracking:
Testing
Wenn ich eine Testregel erstellen die HTTP_HOST zu beweisen, verändert wird, es korrekt verwendet die HTTP_HOST Datensatz über den X-CF-ORIGIN-Header:
<rule name="test" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_X_CF_ORIGIN}" pattern=".+" />
<add input="{HTTP_HOST}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="http://some-site.com/{C:1}" redirectType="Temporary" />
</rule>
Bitte helfen - was wir verpasst haben?