使用Azure CDN强制使用HTTPS

19

我正在使用Azure CDN作为Storage Account的前端。我希望只通过HTTPS传输所有内容,因此我已经在自定义域上设置了HTTPS并创建了一个URL重写规则:

HTTPS rewrite rule

但问题是,我最终到达的URL是这样的: https://the-custom-domain/website/17/index.html

website/17/index.html是存储帐户内根内容,但我不知道为什么会将容器路径附加到文件名之前。还有一个针对静态文件的重新编写规则 (https://blog.lifeishao.com/2017/05/24/serving-your-static-sites-with-azure-blob-and-cdn)。

您知道URL重写有什么问题吗?

6个回答

17

这里有一份来自微软的官方指南,适用于标准Azure CDN:

https://learn.microsoft.com/zh-cn/azure/cdn/cdn-standard-rules-engine

以下是摘要:

将用户重定向到HTTPS

  • 在CDN配置文件页面上,选择您要创建规则的端点。
  • 选择“规则引擎”选项卡。
  • 选择“添加规则”并输入规则名称。
  • 为了确定规则适用的请求类型,请创建匹配条件:
    • 选择“添加条件”,然后选择“请求协议匹配条件”。
    • 对于操作员,选择等于。
    • 对于值,选择HTTP。
  • 选择适用于满足匹配条件的请求的操作:
    • 选择“添加操作”,然后选择URL重定向。
    • 对于类型,选择发现(302)。
    • 对于协议,选择HTTPS。
    • 保留所有其他字段为空以使用传入值。
  • 选择“保存”以保存新规则。现在可以使用该规则。

1
我已经为在Azure上设置静态网站创建了一个完整的教程,其中包括此内容和更多信息,请访问:https://the.aamodt.family/rune/2020/01/08/tutorial-azure-website.html - Rune Aamodt
这个回答非常棒,我本来打算购买高级服务来解决这个问题。唯一让我好奇的是,这会不会影响您在 Google 上的 SEO 或广告排名呢? - Gerardo Jaramillo
好问题,不幸的是我不熟悉这如何影响SEO。 - Rune Aamodt
1
谢谢!我想我需要做更多的研究,因为我听说302对于SEO不好,但最近的调查表明,谷歌并不总是认为它是一件坏事。你的解决方案非常适合我所需的!无论如何,还是谢谢你。 - Gerardo Jaramillo
起初它没有起作用, 不得不更改, “对于类型,选择Found(302)” -> “永久重定向(308)” 哇,它起作用了。 - Poornamith

11

我正在使用 Azure Verizon Premium CDN。

我创建了两个规则,规则的顺序很重要。每次测试后需要等待最多4小时。

图像的规则如下:移除 index.html 并将第2个继续作为第3个。

输入图片说明

输入图片说明

=============== 第一个规则结束 ==================
输入图片说明

输入图片说明

文本规则如下:
1.将 HTTP 重定向到 HTTPS
规则--> (.*) 目的地 https://%{host}/$1

  1. 移除 index.html 不起作用 100% ;-(
    URL Rewrite
    2.A 源 ((?:[^\?]/)?)($|\?.) - 目的地 -> $1index.html$2
    2.B 源 ((?:[^\?]/)?[^\?/.]+)($|\?.) - 目的地 - > $1/index.html$2

这似乎只能通过Verizon Premium获得:HTTP到HTTPS重定向 您可以将HTTP流量重定向到HTTPS。这需要使用来自Verizon的Azure CDN高级提供程序。https://learn.microsoft.com/en-us/azure/storage/blobs/storage-https-custom-domain-cdn - Simon

6
我正在使用Azure Verizon Premium。
在这种情况下,您可能希望将您的http请求重定向到https端点。为此,您必须为每个您想要此行为的端点添加一个规则。
  match condition:

    if Request Scheme = HTTP

  feature:

    Redirect - Code: 301, source: (.*), destination: https://%{host}/$1

This response was found at docs microsoft


5
现在更加简单了 在此输入图像描述 无需输入任何主机名、路径等信息。
请确保在源设置中已经同时启用了HTTP和HTTPS。 在此输入图像描述 它应该在10分钟内反映出来。

是的,但这是微软标准 CDN。Verizon 高级 CDN 仍然存在同样的问题。 - bukso

2

我正在使用以下配置将任何请求重定向到https:

http to https - Azure CDN

如果

  • 请求模式为HTTP

功能

  • URL重定向
  • 代码:301
  • 源:(.*)
  • 目标:https://%{host}/$1
请注意,保留了HTML标签。

请问您能告诉我我的配置文件有什么问题吗? https://drive.google.com/file/d/1ADN1O-oEhZ7CYcMNRZ-GYNx_OCmrEMDz/view?usp=sharing - jayasurya_j

0
如果您想要一个简单的1:1的HTTP到HTTPS的解决方案(没有任何不必要的内容),您应该使用以下规则:
https://%{host}/%{request_uri#/}

IF

  • 请求模式,HTTP

特性

  • URL 重定向
  • 代码:301
  • 源:(.*)
  • 目标:https://%{host}/%{request_uri#/}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接