在 Verizon 中为 Azure CDN 创建重定向规则,将 /index.html 添加到 URL 的末尾
Create a redirect rule for Azure CDN in Verizon which adds /index.html to the end of URL
我在 Azure 门户中的 Verizon 高级订阅下创建了一个 Azure CDN,其端点指向我的 Azure 静态网站 URL。
我想在 Azure Verizon 引擎中创建一个重定向规则,如果未指定扩展名或 URL 的最后一唱不是 /
,则将 /index.html
添加到 URL 的末尾象征。
到目前为止,我尝试使用 (.+\/[^\.]\w+$)
正则表达式,您可以查看它如何工作的示例 here
我的第一个方法:
在这种情况下,如果您在网络浏览器中键入 URL https://blah.com/foo/bar
它不会更改 URL,但是您可以从 https://blah.com/foo/bar/index.html 查看现有文件的某些内容,但某些资源链接已损坏。不知道为什么我在这种情况下没有得到 404,但可能是因为我在 Azure 的 Storage account
面板的 Static Website
面板中将 Index document name
设置为 index.html
.如果我在 Chrome
的开发者工具中打开 Network
选项卡,我可以看到很多 404 响应,例如
这是因为该网站试图从 https://blah.com/foo/
目录而不是 https://blah.com/foo/bar/
获取资源
因此,例如,loadcsh.js
实际上位于 https://blah.com/foo/bar/loadcsh.js
下,但网站正在错误目录下搜索文件 https://blah.com/foo/loadcsh.js
我的第二种方法
在这种情况下,如果您键入 URL https://blah.com/foo/bar
它重定向到 https://blah.com/foo/bar/foo/bar/index.html
所以 foo/bar/
在这里是多余的。
我的第三种方法
在这种情况下,如果您键入 URL https://blah.com/foo/bar
它重定向到 https://blah.com/index.html
我不知道如何应用从 https://blah.com/foo/bar
进行重定向的规则
到 https://blah.com/foo/bar/index.html
并且对于所有此类情况都是通用的。
有任何想法吗??
干杯
我认为你的正则表达式没问题。您可以添加规则 URL redirect
,在 Source 文本框中键入正则表达式 (.+\/[^\.]\w+$)
并在 Destination 文本框中添加 https://%{host}//index.htm
。在这里,我使用了可在 Verizon 中使用的 Azure CDN 的 HTTP 变量。您可以阅读有关变量 here 的更多信息。
简而言之 %{host}
returns 一个主机名,例如www.contoso.com
请记住,所有规则更改都需要传播几个小时才能对 CDN 生效。
我在 Azure 门户中的 Verizon 高级订阅下创建了一个 Azure CDN,其端点指向我的 Azure 静态网站 URL。
我想在 Azure Verizon 引擎中创建一个重定向规则,如果未指定扩展名或 URL 的最后一唱不是 /
,则将 /index.html
添加到 URL 的末尾象征。
到目前为止,我尝试使用 (.+\/[^\.]\w+$)
正则表达式,您可以查看它如何工作的示例 here
我的第一个方法:
在这种情况下,如果您在网络浏览器中键入 URL https://blah.com/foo/bar
它不会更改 URL,但是您可以从 https://blah.com/foo/bar/index.html 查看现有文件的某些内容,但某些资源链接已损坏。不知道为什么我在这种情况下没有得到 404,但可能是因为我在 Azure 的 Storage account
面板的 Static Website
面板中将 Index document name
设置为 index.html
.如果我在 Chrome
的开发者工具中打开 Network
选项卡,我可以看到很多 404 响应,例如
https://blah.com/foo/
目录而不是 https://blah.com/foo/bar/
获取资源
因此,例如,loadcsh.js
实际上位于 https://blah.com/foo/bar/loadcsh.js
下,但网站正在错误目录下搜索文件 https://blah.com/foo/loadcsh.js
我的第二种方法
https://blah.com/foo/bar
它重定向到 https://blah.com/foo/bar/foo/bar/index.html
所以 foo/bar/
在这里是多余的。
我的第三种方法
https://blah.com/foo/bar
它重定向到 https://blah.com/index.html
我不知道如何应用从 https://blah.com/foo/bar
进行重定向的规则
到 https://blah.com/foo/bar/index.html
并且对于所有此类情况都是通用的。
有任何想法吗??
干杯
我认为你的正则表达式没问题。您可以添加规则 URL redirect
,在 Source 文本框中键入正则表达式 (.+\/[^\.]\w+$)
并在 Destination 文本框中添加 https://%{host}//index.htm
。在这里,我使用了可在 Verizon 中使用的 Azure CDN 的 HTTP 变量。您可以阅读有关变量 here 的更多信息。
简而言之 %{host}
returns 一个主机名,例如www.contoso.com
请记住,所有规则更改都需要传播几个小时才能对 CDN 生效。