You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Android和iOS正确托管.well-known目录下的关联文件?

解决Flutter深度链接(Universal Links)文件托管问题

Angular 端配置调整

  1. 添加静态资源目录
    在项目根目录创建.well-known文件夹,将apple-app-site-association和assetlinks.json放入其中。

修改angular.json文件,在projects -> [你的项目名] -> architect -> build -> options -> assets数组中添加.well-known目录,确保构建时该目录会被复制到输出的dist文件夹:

"assets": [
  "src/favicon.ico",
  "src/assets",
  "src/.well-known" // 新增这一行
]
  1. 排除路由守卫拦截
    如果你的Angular应用使用了全局路由守卫(比如认证守卫),需要在守卫逻辑中排除.well-known相关路径,避免被重定向到登录页:
// 示例:在AuthGuard的canActivate方法中添加判断
canActivate(route: ActivatedRouteSnapshot): boolean {
  const path = route.routeConfig?.path;
  if (path?.startsWith('.well-known')) {
    return true; // 允许直接访问
  }
  // 原有认证逻辑...
}

Apache 服务器配置调整

  1. 跳过.well-known目录的认证
    在你的Apache站点配置文件(如/etc/apache2/sites-available/example.com.conf)中,针对.well-known目录添加配置,跳过认证检查:
<Directory "/var/www/example.com/.well-known">
    AllowOverride None
    Require all granted
    # 若之前有AuthType等认证配置,添加以下两行跳过认证
    AuthType None
    Satisfy Any
</Directory>
  1. 调整Rewrite规则优先匹配静态文件
    如果Apache配置了将所有请求转发到Angular的index.html(SPA常见配置),需要修改Rewrite规则,让.well-known下的文件请求优先匹配实际文件,不转发到前端路由:
RewriteEngine On
# 优先处理.well-known下的文件请求
RewriteRule ^/.well-known/ - [L]

# 原有SPA重写规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.html [L]
  1. 设置正确的MIME类型
    apple-app-site-association文件无后缀,需在Apache配置中指定其MIME类型为application/json,确保iOS设备能正确识别:
<Files "apple-app-site-association">
    ForceType application/json
</Files>

完成以上配置后,重启Apache服务器,再访问https://example.com/.well-known/apple-app-site-association和https://example.com/.well-known/assetlinks.json,即可直接返回文件内容,不会被重定向到登录页。

内容的提问来源于stack exchange,提问作者Ridham Desai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:27:13