Con*_*thy 5 url-rewriting azure azure-cdn
我使用Azure Verizon CDN从Blob存储发布我的Web应用程序(SPA).我已成功设置自定义域和SSL.我在CDN中添加了一个重写规则,以重定向到默认文档index.html.基本上,这会接收传入的请求,并在URL路径和任何查询字符串之间插入"index.html".所以
mydomain.com/startup
去吧mydomain.com/startup/index.html
mydomain.com/homepage
去 mydomain.com/homepage/index.html
然后
mydomain.com/showuser/?userId=xxxxx
去mydomain.com/showuser/index.html/?userid=xxxxx
一切似乎都运作良好.
SPA使用的地址栏中的URL从不请求实际文件,但默认文档index.html中的代码确实如此.这些文件请求都是404失败的,因为我猜重写规则也是这样做的.
如果URL包含文件名,我想要的是一些不执行URL重写的方法.规则引擎阻止我在使用URL重写功能时添加这样的条件 - 显然,在尝试使用URL重写功能时,您无法在URL上使用任何匹配条件.
小智 6
我也在寻找答案.我最终不得不参与Azure支持.
与App Services和IIS不同,当文件不存在时,CDN无法重写URL.但是,只要SPA的路由不包含a .
,就可以创建仅对不包含a的URL路径起作用的重写规则.
.这将具有重写裸路径请求而仅留下文件请求的效果.
首先,您的CDN配置文件需要是Azure中的Verizon Premium CDN SKU.它是唯一支持重写规则的SKU.
[^?.]*(\?.*)?$
.此模式捕获其中的URL路径.
,但不关心它是否在查询字符串中.origin_path/document.ext
.这是棘手的部分.Path与原始根相对.例如,如果您的CDN端点的原始路径是/origin_path
并且您想要重定向到index.html
,则应输入origin_path/index.html
.如果您的CDN由Azure存储帐户支持且原点指向容器,则始终如此. 归档时间: |
|
查看次数: |
1026 次 |
最近记录: |