如何在 GoDaddy 的网络托管服务上提供没有扩展名的文件?

How to web serve a file without an extension on GoDaddy's web hosting service?

在为 iOS 个应用程序设置通用链接时,Apple 声明:

  • Create an apple-app-site-association file that contains JSON data about the URLs that your app can handle.
  • Upload the apple-app-site-association file to your HTTPS web server. You can place the file at the root of your server or in the .well-known subdirectory.

我们创建了一个名为 "apple-app-site-association" 的文件,但没有扩展名,但是如果导航到“http://ourdomain.com/apple-app-site-association”,我们会收到 404 文件未找到错误。

Apple 指定不在文件名中添加 .json。

我们看到 another SO overflow answer 描述了对 IIS 的配置更改以提供没有扩展名的文件。但是,要从 GoDaddy 的 Linux 或 IIS 服务器正确提供此文件的技巧是什么?

我能够通过在包含以下内容的根级别添加 .htaccess 文件来实现它:

<Files "apple-app-site-association">
  ForceType application/json
</Files>

奇怪的是,如果我试图将 apple-app-site-association 和 .htaccess 文件放在 .well_known 目录中,我无法让它工作。

使用此配置,此处的验证器 https://branch.io/resources/universal-links/ 全部为绿色并且链接本身有效。

这对我们有用。

我们将此文本与 apple-app-site-association 文件一起放在主 Web 目录中名为 "web.config" 的文件中。

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <staticContent>             
             <remove fileExtension=".xml"/>
      <remove fileExtension=".svg" />
      <remove fileExtension=".ttf" />
      <remove fileExtension=".eot" />
      <remove fileExtension=".woff" />
      <remove fileExtension=".json" />
      <remove fileExtension=".otf" />
      <remove fileExtension=".mp4" />
      <remove fileExtension=".zip"/>
      <remove fileExtension=".eps"/>
      <remove fileExtension=".pdf"/>
      <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
      <mimeMap fileExtension=".zip" mimeType="application/zip"/>
      <mimeMap fileExtension=".eps" mimeType="application/octet-stream"/>
      <mimeMap fileExtension=".json" mimeType="application/json" />
      <mimeMap fileExtension=".otf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
      <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
      <mimeMap fileExtension=".xml" mimeType="text/xml" />
      <mimeMap fileExtension="." mimeType="application/pkcs7-mime"/>
         </staticContent>
     </system.webServer>
 </configuration>

值得注意的是,在没有扩展名的情况下正确提供文件 - 但是 - 据我们了解 - Apple 仍然需要另外两个步骤。 (1) 您的服务器必须获得 SSL 证书,以便它可以通过 HTTPS 提供该文件(在 GoDaddy 上每年需支付约 60 美元); (2) 您的服务器还必须对 apple-app-site-association 文件进行代码签名(对于可以对文件进行代码签名的可下载证书,在 GoDaddy 上的费用约为每年 150 美元。)