我想在 Android 中启用深层链接的自动验证,为此我需要在我的服务器
assetlinks.json
上托管文件 https://mycompany.com
。这将允许在安装应用程序时自动验证我的深层链接。问题是,我们进行了重定向设置,以便来自 https://mycompany.com
的所有请求都转到 https://www.mycompany.com
。因此,当我将文件放入 .well-known
文件夹中时,它会托管在 https://www.mycompany.com/.well-known/assetlinks.json
上,这不满足 Android 域验证器的要求。
请参阅此处的域非重定向部分 https://support.google.com/google-ads/answer/10710301?sjid=18198349224505489730-NA
因此,如果我尝试打开 url
https://mycompany.com/.well-known/assetlinks.json
,它会被重定向到 https://www.mycompany.com/.well-known/assetlinks.json
并且文件会显示在浏览器中,因此在浏览器中打开 url 并不是一个好的测试。相反,我可以在终端中使用 curl
命令来找出问题所在。
curl https://www.mycompany.com/.well-known/assetlinks.json
将返回文件内容,但 curl https://mycompany.com/.well-known/assetlinks.json
不会返回。
我看到其他公司也能做到这一点,比如 Lyft。
当我们在终端中执行命令
curl https://lyft.com/.well-known/assetlinks.json
时,您可以看到他们在没有 www
的情况下在其服务器上正确托管文件,无论是否为其他 url 链接设置了重定向,所以如果我们输入 https://lyft.com
它仍然是正确重定向到 https://www.lyft.com
。
我们如何实现这一目标?我们怎样才能保留重定向并仍然为最后包含 assetlinks.json 的此类 url 路径设置异常?
你能弄清楚这个问题吗?我的应用程序遇到了类似的问题,为了解决这个问题,我们使用防火墙来阻止该路径上的请求并提供响应 json,这并不理想。