Azure CDN URL重写至index.html不生效问题求助
解决访问
www.xyz/storybook自动加载index.html的问题 排查方向1:修正URL重写规则
- 确保规则匹配模式覆盖所有目标路径:
- 正则规则示例:同时匹配
/storybook和/storybook/两种请求,重写为/storybook/index.html匹配模式:^/storybook(/)?$ 重写目标:/storybook/index.html - 前缀匹配规则:设置匹配路径为
/storybook,重写类型选择内部转发(而非外部重定向),目标路径指定为/storybook/index.html
- 正则规则示例:同时匹配
- 调整规则执行优先级,将这条重写规则放在所有规则的最前面,避免被其他缓存、重定向规则提前拦截。
排查方向2:开启静态容器的目录索引功能
多数静态网站服务自带默认索引文件配置,开启后无需重写规则即可实现需求:
- 若使用Nginx,在对应location块添加:
location /storybook/ { index index.html; } - 若使用CDN或云服务的静态容器,找到「目录索引」配置项,添加
index.html作为默认索引文件,并确保作用范围包含/storybook路径。
排查方向3:验证路径与文件存在性
- 确认$web容器内
/storybook/index.html文件真实存在,路径拼写(含大小写)完全正确 - 用命令测试请求,查看响应细节:
curl -v www.xyz/storybook- 返回404:说明文件不存在或路径匹配错误
- 返回3xx状态码:检查规则是否误设为外部重定向
- 返回200但内容非index.html:说明规则匹配成功但重写目标路径错误
排查方向4:检查规则作用范围
确保URL重写规则的作用范围覆盖$web容器的根路径,或明确指定作用于/storybook路径下,避免规则仅应用到其他无关路径。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

