HTTPS重定向到无法正常工作的文件夹

时间:2017-02-25 20:30:35

标签: asp.net redirect web-config iis-7.5 http-redirect

我刚刚安装了https证书,并且很难设置重定向 我尝试在IIS(7.5)中使用HTTP重定向,但是一旦我通过初始登录页面就无法在IE和FF以及Chrome中工作,我得到了#34;太多的重定向"错误。
我也尝试过URL Rewrite,但它完全失败,所以我还原为HTTP重定向。

用户使用" http://example.com/internal"访问该网站。现在,我想将其重定向到" https://internal.example.com/internal"并且无法使其发挥作用。我宁愿不使用最后一个"内部"在URL中,如果可能(我在请求CSR时使用的公用名是internal.example.com)。

在HTTP重定向中,我设置了#34;将请求重定向到此目的地"到" https://internal.example.com/internal/default.aspx"并设置"重定向行为" to"仅将请求重定向到此目录中的内容"状态码301(永久)。

网站有一个"内部"包含.Net应用程序文件的文件夹,需要表单身份验证。根文件夹中的文件对所有人开放(即www.example.com对所有人开放)。

非常感谢您提供的任何帮助。

更新

我更新了web.config并添加了一些URL重写规则,但仍然不完全存在 在IE中,当我输入example.com/internal时,它会转到https://internal.example.com,但不会转到http://internal.example.com/internal 在Chrome中,它不会转到https,保留在http中并显示"不安全"。

<rewrite>
    <rules>
        <rule name="Rewrite to internal" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^www.example.com$" />
            </conditions>
            <action type="Redirect" url="{R:1}" />
        </rule>
        <rule name="internal.example.com to sub folder internal" enabled="true" stopProcessing="true">
            <match url="(.*)" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll">
                <add input="{HTTPS}" pattern="^OFF$" />
                <add input="{HTTP_HOST}" pattern="^internal\.example\.com$" ignoreCase="false" />
                <add input="{PATH_INFO}" pattern="^/internal($|/)" negate="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/" />
        </rule>
    </rules>
</rewrite>

第一条规则就是让http://example.com通过;第二种是将http://example.com/internal重定向到https://internal.example.com/internal

1 个答案:

答案 0 :(得分:0)

检查IIS中的身份验证小程序。它应该允许匿名认证。