繁体   English   中英

使用完整网址时,无法将规则http重定向到https

[英]Redirect rule http to https not working when using full url

我的azure云服务在配置文件中同时启用了http和https。 我尝试在我的web.config中添加此规则

<rule name="RedirectHTTPToHTTPS" stopProcessing="true">
        <match url="(.*)" ignoreCase="true" />
        <conditions>
            <add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" />

        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
    </rule>

如果我使用http://mysite.kom ,它将正确重定向到https://mysite.kom

但是,如果我输入http://mysite.kom/other/default.aspx,它将重定向到http://mysite.kom/other/default.aspx 而不是 https://mysite.kom/other/default.aspx

我添加了GlobalFilters.Filters.Add(new RequireHttpsAttribute()); 在我的application_start事件中。但是仍然无法将http://mysite.kom/other/default.aspx重定向到“ https: //mysite.kom/other/default.aspx”

我在stackoverflow中尝试了所有类似的问题,甚至将此规则移到了规则配置的顶部。 任何使这项工作的建议

为了解决这个问题,我添加了

if (!HttpContext.Current.Request.IsSecureConnection && !HttpContext.Current.Request.Url.Host.Contains("localhost"))
        {
            Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"]
                                         + HttpContext.Current.Request.RawUrl);
        }

global.asax.cs文件中的Application_BeginRequest事件

这是我使用的:

<rewrite>
    <rules>
        <rule name="redirect HTTP to HTTPS" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

虽然您不保留查询字符串,但似乎仍然拥有获取http-> https重定向所需的一切。 这使我想知道浏览器缓存是否会导致您出现问题? 我遇到了我认为它不起作用的问题,因为在启用http-> https重定向之前我访问了该站点,结果是我的浏览器从缓存中为页面提供服务。

我将其包装在网站扩展中,并且它使用了上面的重写规则,因此我知道它可以正常工作: http : //www.siteextensions.net/packages/RedirectHttpToHttps/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM