使用 Azure CDN 强制使用 HTTPS

Forcing HTTPS with Azure CDN

我在存储帐户前使用 Azure CDN。我只想通过 HTTPS 提供所有服务,所以我在自定义域上设置了 HTTPS 并创建了一个 URL 重写:

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

website/17/index.html是Storage Account里面的root内容,不知道为什么要在文件名前加上容器路径。还有静态文件的重写规则(https://blog.lifeishao.com/2017/05/24/serving-your-static-sites-with-azure-blob-and-cdn)。

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

我正在使用 Azure Verizon Premium CDN。

我做了两条规则。规则的顺序很重要。每次测试后您最多需要等待 4 小时。

图像删除 index.html 2 继续图像 3

=============== 结束第一个规则 ==================

此处为文本
1. 将 HTTP 重定向到 HTTPs
规则--> (.*) 目标 https://%{主机}/$1

  1. 删除删除 index.html 100% 无效 ;-(
    URL重写
    2.A 来源 ((?:[^\?]/)?)($|\?.) - 目的地 -> $1index.html$2
    2.B 来源 ((?:[^\?]/)?[^\?/.]+)($|\?.) - 目的地 - > $1/ index.html$2

我正在使用 Azure Verizon Premium。

在这种情况下,您可能希望将您的 http 请求重定向到您的 https 端点。在这种情况下,您必须为您想要此行为的每个端点添加一条规则:

  match condition:

    if Request Scheme = HTTP

  feature:

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

此回复发现于 docs microsoft

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

如果

  • 请求架构,HTTP

特征

  • URL 重定向
  • 代码:301
  • 来源:(.*)
  • 目的地:https://%{host}/

此处有 MS 的官方指南,适用于标准 Azure CDN:

https://docs.microsoft.com/en-us/azure/cdn/cdn-standard-rules-engine

总结如下:

将用户重定向到 HTTPS

  • 在 CDN 配置文件页面上,select 您要为其创建规则的终结点。
  • Select 规则引擎选项卡。
  • Select 添加规则并输入规则名称。
  • 要确定规则适用的请求类型,请创建匹配条件:
    • Select添加条件,然后select请求协议匹配条件。
    • 对于运算符,select等于。
    • 对于值,select HTTP。
  • Select对满足匹配条件的请求应用的动作:
    • Select添加动作,然后selectURL重定向。
    • 对于类型,select 找到 (302)。
    • 对于协议,select HTTPS。
    • 将所有其他字段留空以使用传入值。
  • Select 保存以保存新规则。该规则现在可以使用了。

现在简单多了

无需输入主机名、路径等任何内容。

请确保您已在 Origin 设置中同时启用 HTTP 和 HTTPS

应该会在 10 分钟内反映出来

如果您想要简单的 1:1 http 到 https 解决方案(没有任何不需要的),您应该使用以下规则:

https://%{host}/%{request_uri#/}

如果

  • 请求架构,HTTP

特征

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