如何将非 www 域重定向到 Azure 上托管的 asp.net mvc 中的 WWW 域?

Posted

技术标签:

【中文标题】如何将非 www 域重定向到 Azure 上托管的 asp.net mvc 中的 WWW 域?【英文标题】:How to redirect a non www domain to WWW domain in asp.net mvc hosted on Azure? 【发布时间】:2021-01-19 20:19:09 【问题描述】:

我在 Azure 中的 www.mydomain.tech 上设置了 ssl。 (mydomain.tech 是一个示例 url,不是我的实际域)。当我输入 url www.mydomain.tech 时,我没有收到任何错误,因为 SSL 工作正常。当我直接访问 mydomain.tech 时,我收到 DLG_FLAGS_SEC_CERT_CN_INVALID 错误。 我需要将来自 mydomain.tech 的任何请求转移到 www.mydomain.tech 我正在使用 Web.Config 文件中的以下代码进行转移。它不工作。我的 Url Pattern 是错误的,还是我需要在 azure 中进行任何其他更改以反映我的 Web.Config 更改?请建议。 PS - 在应用 Web.config 中的更改后,我已经重新启动了 Azure 机器。

<rule name="Redirect mydomain.com to www.mydomain.com" patternSyntax="ECMAScript" stopProcessing="true">  
            <match url=".*"></match>  
            <conditions>  
                <add input="HTTP_HOST" pattern="^mydomain.tech$"></add>  
                <add input="HTTPS" pattern="off"></add>  
            </conditions>  
            <action type="Redirect" url="https://www.mydomain.tech/R:0" redirectType="Permanent" appendQueryString="true"></action>  
        </rule> 

【问题讨论】:

您的证书是否涵盖mydomain.tech(没有www)?如果没有,它需要。否则浏览器不会点击mydomain.tech 不,没有 www 不包括在内。如上所述,如果我转到非 www,它只会发出 SSL 警告,表明连接不安全。这就是我需要将任何非 www 自动重定向到 WWW 的原因。因此上面的代码在 Web.Config 中。 您需要一个非 www 证书。然后重定向将起作用。由于缺少证书,您无法访问重定向。 【参考方案1】:

查看 Ray 的这篇文章:3 Ways to Redirect HTTP to HTTPS and non-www to www in ASP.NET Core

您可能会注意到您在Startup.cs 文件中缺少以下代码:

app.UseRewriter(new RewriteOptions()
   .AddIISUrlRewrite(env.ContentRootFileProvider, "XML_FILE_NAME")
   .AddRedirectToHttps()
);

如果这对您不起作用,您还可以尝试其他两种替代方法中的任何一种。

【讨论】:

【参考方案2】:

我必须使用免费的 SSL 提供程序(免费 SSL)为两个域创建一个单独的 pfx 文件,并且必须为两个域添加绑定以使其工作。还必须强制 azure 仅使用 HTTPS。这对我有用。

【讨论】:

以上是关于如何将非 www 域重定向到 Azure 上托管的 asp.net mvc 中的 WWW 域?的主要内容,如果未能解决你的问题,请参考以下文章

通过域重定向到IP连接到网站(没有指南或“修复”帮助)

heroku 非 www 重定向到 www 域的网络解决方案

对于托管在 CloudFront 后面的 EC2 实例上的站点,如何将非 www 流量重定向到 www?

Azure API 网关根据租户 ID 将 url 重新路由到不在 Azure 上托管的后端应用程序?

无法将 Azure VM 上托管的 WCF 服务引用添加到 VS2015 项目

进入我在 firebase 托管上托管的应用会重定向到谷歌登录页面