如何阻止Cloudflare重定向站点内的Apple应用关联文件URL?
解决Cloudflare中Apple App Site Association文件的301重定向问题
问题背景
我在Cloudflare配置了全站请求从https://domain.no重定向/缓存到https://www.domain.no,但Apple要求.well-known/apple-app-site-association文件不能被301重定向,必须保留原始不带www.的URL(即https://domain.no/.well-known/apple-app-site-association)。尝试过添加完整URI匹配的页面规则、重写规则、缓存规则,但请求该文件时仍返回301重定向:
Connecting to domain.no…|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.domain.no/.well-known/apple-app-site-association [following]
需要实现重写而非重定向,不确定是否可行?
可行解决方案
以下是具体的Cloudflare配置步骤,确保特定路径绕过全站重定向:
- 调整规则优先级:Cloudflare的规则按顺序执行,必须让针对
.well-known/apple-app-site-association的规则优先级高于全站重定向规则。 - 创建专属URL重写规则:
- 登录Cloudflare控制台,选中目标域名,进入「规则」→「重写规则」→「创建规则」
- 规则名称设为
Skip Redirect for Apple App Site Association - 匹配条件:选择「URI路径」→「等于」,填入
/.well-known/apple-app-site-association - 转换动作:选择「重写URL」→「路径」→「保留路径」,不要添加任何重定向动作,让请求直接命中源站对应文件(或Cloudflare缓存中的文件)
- 修改全站重定向规则:如果之前的全站重定向是通过页面规则实现的,修改其匹配条件,排除目标路径。比如将匹配模式从
*domain.no/*,新增条件「URI路径」→「不等于」/.well-known/apple-app-site-association - 验证配置:执行命令
curl -v https://domain.no/.well-known/apple-app-site-association测试,确认返回200状态码,浏览器地址栏仍显示不带www.的原始URL,无301跳转。
这种方案完全可行,核心逻辑是让特定路径的请求绕过全站重定向流程,内部处理内容而不改变用户访问的URL,符合Apple的要求。
内容的提问来源于stack exchange,提问作者Arno Teigseth
相关产品推荐
相关产品推荐

