我正在研究通用链接,以便在点击网址时打开应用程序。我正在使用 https 服务器并完成了 Apple 的所有步骤(Apple Doc)。但是苹果通用链接验证器显示以下错误,
您的文件的“内容类型”标头未找到或未被识别。
apple-app-site-association 文件已成功上传到服务器,文件如下所示,
{
"applinks": {
"apps": [],
"details": [
{
"appID": "J2HBF9A3PZ.com.aors.speaku",
"paths": ["*","/"]
}
]
}
}
而且苹果说无论域名是否有https,都不需要签署
apple-app-site-association
文件。
如果文件未签名,则其内容类型应为 应用程序/json.否则,它应该是 application/pkcs7-mime。
所以我的问题是如何在这个
application/json
文件中提及内容类型 (apple-app-site-association
)???
请帮我解决这个问题。我不知道它到底是什么意思。
我刚刚自己解决了这个问题。我必须登录到我的服务器并转到
apple-app-site-association
文件所在的目录。在这个目录中,我有一个 .htaccess
文件,我将其修改为包含以下几行:
<Files "apple-app-site-association">
ForceType 'application/json'
</Files>
执行此操作后,验证服务不再抱怨
Content-Type
。
注意事项:
.htaccess
文件,您可以创建一个。.htaccess
文件应该位于站点目录的根目录中(这是您最有可能放置 apple-app-site-association
文件的位置。此修复了
firebase.json
文件中的内容类型验证。
{ "hosting": { "public": "public", "headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ], "appAssociation": "NONE" } }
WordPress 网站。将其粘贴到 .htaccess 的末尾实际上对我有用:
标头设置内容类型“application/pkcs7-mime”
这个语法对我有用:
<FilesMatch "apple-app-site-association">
ForceType application/json
</FilesMatch>
您提供的代码片段正在配置 Apache 以处理对 MIME 类型 application/json 的 apple-app-site-association 文件的请求。此配置通常用于与 Apple 应用程序相关的服务,例如通用链接或应用程序剪辑,以允许服务器使用正确的标头提供 apple-app-site-association 文件。
为了确保 Apache 正确处理 apple-app-site-association 文件,可以使用以下配置:
<Files "apple-app-site-association">
ForceType application/json
Header set Content-Type "application/json"
</Files>
这会强制 Apache 将 apple-app-site-association 文件视为 JSON 文件,并将 Content-Type 标头显式设置为 application/json。
确保您的 Apache 服务器上启用了 mod_headers 模块:
sudo a2enmod headers
sudo service apache2 restart
这将确保 apple-app-site-association 文件在请求时正确地作为 JSON 文件提供。