HTTP 错误 500.52 - Docker 上的 URL 重写模块错误



我正在尝试将所有URL重写为HTTPS,但收到此错误,不确定我做错了什么:

配置错误

此配置节不能在此路径上使用。这种情况会发生 当该部分在父级别锁定时。锁定是通过 默认(overrideModeDefault="Deny"(,或由位置显式设置 标记中带有覆盖模式="拒绝"或旧版允许覆盖="false"。

web.config:

<rewrite>
<allowedServerVariables>
<add name="HTTPS" />
<add name="X-FORWARDED-PROTO" />
</allowedServerVariables>
<rules>
<rule name="HTTPS_AlwaysOn" patternSyntax="Wildcard">
<match url="*" />
<serverVariables>
<set name="HTTPS" value="on" />
</serverVariables>
<action type="None" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
</conditions>
</rule>
</rules>
</rewrite>

我还在 Docker 容器上安装了重写模块和 ARR

# Install Url Rewrite
ADD https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi /install/rewrite_amd64_en-US.msi
RUN msiexec.exe /i c:installrewrite_amd64_en-US.msi /passive
ADD  https://download.microsoft.com/download/A/D/C/ADC4BAF8-A094-47B5-A6F6-CE4C5ED18BF8/ARRv3_setup_amd64_en-us.EXE /install/ARRv3_setup_amd64_en-us.exe
RUN c:installARRv3_setup_amd64_en-us.exe /Q

首先构建一台普通的 IIS 10 计算机进行测试,您应该注意到相同的错误,因为该allowedServerVariables不能在web.config中。

参考

要启用 SSL 重写,只需在里面添加以下内容:

<rules>
<rule name="SSL Redirect" enabled="true" stopProcessing="true">
<match url="(.*)"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off"/>
<add input="{HTTP_HOST}" pattern="localhost" negate="true"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
</rules>

最新更新