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

时间:2018-12-14 11:51:19

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

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

的示例。

我的第一种方法: 1st approach

在这种情况下,如果您在网络浏览器中键入URL https://blah.com/foo/bar 它不会更改URL,但是您可以从https://blah.com/foo/bar/index.html查看现有文件的某些内容,但是指向资源的某些链接已损坏。不知道为什么在这种情况下我没有得到404,但是可能是因为我在Azure的Index document name面板的index.html面板中将Static Website设置为Storage account 。如果我在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,并且对于所有此类情况都是通用的。 有任何想法吗?? 干杯

1 个答案:

答案 0 :(得分:2)

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

请记住,所有规则更改都需要传播数小时,才能影响CDN。