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

How to redirect a non www domain to WWW domain in asp.net mvc hosted on Azure?

我已经在 www.mydomain.tech in Azure. (mydomain.tech is a sample url not my actual domain). When I enter the url www.mydomain.tech I don't get any errors because SSL is working fine. When I go to mydomain.tech directly I get DLG_FLAGS_SEC_CERT_CN_INVALID error. I need to transfer any request which comes to mydomain.tech to www.mydomain.tech 上设置了 ssl 我在 Web.Config 文件中使用以下代码进行传输。它不工作。我的 Url 模式是错误的还是我需要在 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> 

查看 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()
);

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

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