【问题标题】:Azure CDN rules engine to rewrite default document and remove .html extensionAzure CDN 规则引擎重写默认文档并删除 .html 扩展名
【发布时间】:2016-09-19 00:37:16
【问题描述】:

我想使用 azure blob 和 CDN premium features,但 文档非常稀疏。这在 Amazon S3 / CloudFront 上是完全可行的。

为了清楚起见,我希望*.azureedge.net/sample/index.html 等于*.azureedge.net/sample/*.azureedge.net/sample/test.html 等于*.azureedge.net/sample/test

这完全不清楚,需要“最多 4 小时”才能预览更改,所以...

经过一番调查,Azure 有一个 Verizon Edgecast CDN 的包装器,这个页面看起来和他们的一模一样...

【问题讨论】:

  • 昨晚我设置了一些实验来尝试了解 Azure CDN 的 URL 重写功能是如何工作的,在 9 种不同的设置中,唯一能按预期工作的是 2 个控件(没有重写)。我也完全找不到任何有用的文档。

标签: azure url-rewriting azure-blob-storage azure-cdn edgecast


【解决方案1】:

Edgecast 支持给了我以下规则:

  • 添加新规则如果总是
    • 功能
      • URL 重写 - 源 ((?:[^\?]*/)?)($|\?.*) 目标 $1index.html$2
      • URL 重写 - 源 ((?:[^\?]*/)?[^\?/.]+)($|\?.*) 目标 $1.html$2

我创建了一个 npm package 来将文件夹和子文件夹部署到 azure 存储,请参阅 https://github.com/glued/yokai 此处还有一些有关为干净 url 配置 CDN 的其他信息:https://github.com/glued/yokai/blob/master/azure.md

【讨论】:

  • 谢谢! / 字符缺少转义表明 python 风格的正则表达式或类似的东西。使用Regex101.com 上的正则表达式工具快速探索这一点,我发现上面的表达式对处理http://example.com/something/http://example.com/something ok,但是如果你真的想指向一个文件,比如说http://exameple.com/image.jpg,它看起来像会表现得很奇怪。如果您不介意,您能否展示一些 URL 以及它们将被重写的内容?
  • 进行了一些修改,链接备份 makes.azureedge.net/fish 以获取图像和索引的示例,makes.azureedge.net/fish/test = test.html 也可以使用
  • 我在 web.config 中的规则很少只是域名?
  • 如何将 http 和 https 的 example.org 和 www.example.com 重定向到 https://www.example.org/home 是否有工具在申请前检查正则表达式? “新规则的批准最多需要 4 个小时。”
  • 如何将删除 index.html 与 HTTP 到 HTTPS 重定向结合起来? docs.microsoft.com/en-us/azure/storage/blobs/…
【解决方案2】:

我很犹豫是否将其发布为答案。我没有时间实际尝试一下,但我发现了似乎是 Verizon 的 CDN 的规则引擎手册。

GlobalDots Knowledge Base - Edgecast Advanced HTTP Rules

顶部附近有一个 PDF 指南链接。

HTTP Rules Guide PDF

它看起来不像正则表达式。它有点符合模式匹配的精神,但看起来没有那么强大或通用。

我还没试过。破译文档以供使用似乎需要做一些工作。实际的例子并不多,而且它给我留下的问题多于答案。我很想听听你是怎么理解它的。

【讨论】:

  • 谢谢,我目前正在与 Edgecast 支持团队讨论,看看他们是否可以提供帮助,并将发布他们回来的内容。
  • 我有一个可行的答案,但我正在稍微调整一下,很快就会报告。
  • @glued 您是否对 Edgecast 支持感到满意?这个准正则表达式的东西仍然有点疯狂。谢谢!
  • @joannes-vermorel 如果您直接联系,他们的支持人员可能会提供额外的指导。不幸的是,我最终将我的项目迁移到了 firebase,其中包括我需要开箱即用的重写
猜你喜欢
  • 2018-04-14
  • 2017-09-09
  • 1970-01-01
  • 2017-11-10
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
相关资源
最近更新 更多