我对 web.config 和强制 SSL 有疑问。我有一个重写 url 的规则,因为 Nette PHP 站点是托管的。
<rule name="Rewrite Admin" stopProcessing="true">
<match url="^admin/(.*)" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/admin/index.php" />
</rule>
如果我在 url 中使用https,请求总是被重定向到 http。(https://example.com/admin -> example.com/admin)。当我对所有请求使用下面的 SSL 强制规则时,会发生错误(重定向过多)。(在 web.config 中有 2 条规则)
<rule name="Redirect to https">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
<add input="{REQUEST_METHOD}" pattern="^get$|^head$" />
<add input="{REQUEST_URI}" pattern="^/(node)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(cbre)" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
如何为动作类型“重写”强制 ssl?
感谢帮助