regex - 为 Verizon 中的 Azure CDN 创建重定向规则,将/index.html 添加到 URL 末尾

标签 regex azure azure-blob-storage azure-cdn

我在 Azure 门户中的 Verizon 高级订阅下创建了一个 Azure CDN,其端点指向我的 Azure 静态网站 URL。 我想在 Azure Verizon 引擎中创建一个重定向规则,其中添加 /index.html如果未指定扩展名或 URL 的最后一个字符不是 /,则到 URL 末尾象征。 到目前为止我尝试使用(.+\/[^\.]\w+$)正则表达式,您可以查看其工作原理的示例 here

我的第一个方法: 1st approach

在本例中,如果您键入 URL https://blah.com/foo/bar在网络浏览器中 它不会更改 URL,但您可以从 https://blah.com/foo/bar/index.html 查看现有文件的一些内容但某些资源链接已损坏。不知道为什么我在这种情况下没有得到 404,但也许是因为我设置了 Index document nameindex.htmlStatic Website面板中Storage account Azure 中的面板。如果我打开Network Chrome的开发者工具中的选项卡我可以看到很多 404 响应,例如 404 resources 这是因为该网站试图从 https://blah.com/foo/ 获取资源目录而不是 https://blah.com/foo/bar/ 例如,loadcsh.js事实上位于https://blah.com/foo/bar/loadcsh.js下但网站在错误的目录下搜索文件https://blah.com/foo/loadcsh.js

我的第二种方法 enter image description here 在这种情况下,如果您键入 URL https://blah.com/foo/bar 它重定向到 https://blah.com/foo/bar/foo/bar/index.html 所以foo/bar/这里是多余的。

我的第三种方法 enter image description here 在这种情况下,如果您键入 URL https://blah.com/foo/bar 它重定向到 https://blah.com/index.html

我不知道如何应用从 https://blah.com/foo/bar 进行重定向的规则 至https://blah.com/foo/bar/index.html并且对于所有此类情况都是通用的。 有任何想法吗?? 干杯

最佳答案

我认为你的正则表达式没问题。您可以添加规则URL重定向,在文本框中输入正则表达式(.+\/[^\.]\w+$) 并在目标文本框中添加https://%{host}/$1/index.htm。在这里,我使用了可在 Verizon 中使用的 Azure CDN 的 HTTP 变量。您可以阅读有关变量 here 的更多信息。 简而言之,%{host} 返回一个主机名,例如www.contoso.com

请记住,所有规则更改都需要几个小时的传播才能在 CDN 上生效。

关于regex - 为 Verizon 中的 Azure CDN 创建重定向规则,将/index.html 添加到 URL 末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779235/

相关文章:

java - 如何使用正则表达式匹配特定文本中的 ^(d+)

PHP - 仅在来自文本的链接中将空格转换为 %20

regex - 使用正则表达式的 Github 搜索

c# - 为内部站点搜索建立静态页面内容索引

Linux VM 中的 Azure DevOps VM 规模集部署

Azure 数据工厂 - 写入 blob 存储时间歇性出现 400 错误

sql - 返回字符串 :postgresql 中的数字

Azure 函数用户名和密码

azure - 创建 Azure 存储资源时,默认/选定的区域是随机的还是计算出的建议?

azure - 使用 Azure 逻辑应用列出和查看 Azure 存储容器的内容?