以下是我为在 Azure 上运行的 NodeJS 应用程序设置规则的方式:
<rewrite>
<rules>
<clear />
<rule name="Force HTTPS" enabled="true" stopProcessing="false">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode.+" negate="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="app.js" />
</rule>
</rules>
</rewrite>
https://example.com/property/101/main-street-condo-&1001运行完美。末尾的跟踪代码有点奇怪,但这就是要求。
http://example.com/property/101/main-street-condo-&1001需要上面的 HTTP -> HTTPS 重定向才能发挥作用,但每次都会失败并出现神秘的 ASP.NET 错误屏幕。
我的重写 coe 是否缺少了一些东西?