问题描述
我已经在Azure中的www.mydomain.tech上设置了ssl。 (mydomain.tech是示例URL,而不是我的实际域)。输入网址www.mydomain.tech时,我没有收到任何错误,因为SSL可以正常工作。当我直接转到mydomain.tech时,我收到DLG_FLAGS_SEC_CERT_CN_INVALID错误。 我需要将来自mydomain.tech的任何请求转移到www.mydomain.tech 。我正在使用Web.Config文件中的以下代码进行转移。它不起作用。我的网址模式是否错误,还是我需要在天蓝色中进行任何其他更改以反映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。这对我有用。