0

我对 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?

感谢帮助

4

1 回答 1

0

我接受了您的rule配置,但无法重现该问题。因此,要将 HTTP 流量重定向到 HTTPS,我建议您安装一个名为Redirect HTTP to HTTPS通过 Kudu 的站点扩展。

  1. 打开浏览器并访问:

    https://<your-app-name>.scm.azurewebsites.net/SiteExtensions/#gallery
    
  2. 在搜索框中输入“ redirect ”,然后点击搜索按钮。

    在此处输入图像描述

  3. 选择Redirect HTTP to HTTPS并单击添加按钮。

  4. 对话框打开时单击安装按钮。
  5. 通过单击重新启动站点按钮使其可用。
于 2017-06-08T07:43:07.273 回答