Этот вопрос, вероятно, задавали тысячу раз, но я до сих пор не могу найти решение ..HTTPS перенаправление работает локально, а не на лазурном
У меня есть приложения .NET, который, когда выполняется локально, перенаправляет с HTTP на HTTPS , Но при развертывании в Azure Web App перенаправление не будет работать.
Основываясь на нескольких сообщениях в форуме, мое перенаправление выполняется с помощью правила в файле Web.config
. Ниже вы видите этот файл развернут на лазури (я проверил с FTP)
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{HTTP_HOST}" pattern="([^/:]*?):[^/]*?" />
</conditions>
<action type="Redirect" url="https://{C:1}/{R:1}" redirectType="Permanent" />
</rule>
<rule name="static dist files" stopProcessing="true">
<match url="^(.+)$" />
<conditions>
<add input="{APPL_PHYSICAL_PATH}dist\{R:1}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/dist/{R:1}" />
</rule>
<rule name="index.html as document root" stopProcessing="true">
<match url="^$" />
<action type="Rewrite" url="/dist/index.html" />
</rule>
</rules>
<!--<outboundRules>
<rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
<match serverVariable="RESPONSE_Strict_Transport_Security"
pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" ignoreCase="true" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
</outboundRules>-->
</rewrite>
</system.webServer>
Этого Web.config
файл является результатом преобразования на оригинальном Web.config
файл, так как локально, порт для HTTPS установлен в 44362, и для этого в Web.config
используется локально немного отличается:
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{HTTP_HOST}" pattern="([^/:]*):[^/]*?" />
</conditions>
<action type="Redirect" url="https://{C:1}:44362/{R:1}"
redirectType="Permanent" />
</rule>
локально Everythings работает отлично. Перенаправление выполняется в одно мгновение. Но при развертывании в лазурном веб-приложении перенаправления не происходит. Так «---.azurewebsites.net» не automattically перенаправление на «https://---.azurewebsites.net»
я могу видеть, однако, что он достигает правило тэ, так как название вкладки браузера переименовывает на мгновение во имя этого править.
Если кто-то заметил глупую ошибку в этом коде, сообщите мне.
С уважением,
Я не знал этого, спасибо, что указал. – Andries