强制使用 SSL 后无法访问 Web 清单

Web manifest is not accessible after forcing SSL

我最近开始通过 .htaccess 文件为我的 React PWA 的 URL 强制使用 HTTPS 和非 WWW 形式,但这显然阻止了某些应用程序(例如 pwabuilder.com)访问public 个应用程序文件,例如其 Web 清单。也就是说,某些应用程序(例如 Chrome 移动设备)允许我访问清单。我怎样才能让它始终可以访问?

我的 .htaccess 文件的结构如下:

<IfModule mod_rewrite.c> 
  RewriteEngine On
  RewriteCond %{HTTPS} off [OR]
  RewriteCond %{HTTP_HOST} ^www\. [NC]
  RewriteRule ^ https://aurora.igloo.ooo%{REQUEST_URI} [L,NE,R=301]
</IfModule>
<IfModule mod_rewrite.c> 
  RewriteEngine On  
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
  RewriteRule ^ - [L]

  RewriteRule ^ /index.html [L]
</IfModule>

pwabuilder.com 无法访问的文件托管在 https://aurora.igloo.ooo/manifest.json

aurora.igloo.ooo 有一个奇怪的服务器并阻止某些请求访问 manifest.json
当我第一次点击你的 link 时,我看到了 manifest.json。然后我通过删除文件路径调用主页,在浏览器历史记录中单击返回以再次查看清单并显示它(使用 http-response-code 200):

在网络控制台中查看它仍然变得更加混乱,但也导致了错误的来源:

它抱怨缺少 javascript 的启用,所以他们用 javascript 做了一些奇怪的事情,可能还有一些隐藏的重定向(否则响应代码将是 3xx)。也许他们从不希望从外部访问清单并且它配置不正确并且在某些情况下可以看到。

我没有针对您的问题的快速解决方案,但很明显,某些客户端无法访问清单,您必须搜索其他解决方案。如果您为 aurora.igloo.ooo 工作,则必须与前端开发人员 and/or 服务器管理员交谈以更改某些内容,否则您必须提供自己的清单文件。他们也有可能提供问题的解决方案,但为此您要么可以访问一些常见问题解答或知识库,要么必须联系支持人员。

阅读了桌面上的清单文件后,它会强制进行另一种用户体验,并且至少在 chrome 中更改完整的 window。虽然这对于某些特殊页面来说可能很酷,但也可能令人困惑。
这是我读到的三个链接:

  1. https://developers.google.com/web/fundamentals/web-app-manifest/
  2. https://developers.google.com/web/fundamentals/app-install-banners/
  3. https://developers.google.com/web/progressive-web-apps/desktop

我的假设是 aurora.igloo.ooo 永远不想通过在桌面上显示特殊的应用程序来打破常见的浏览体验-window,因此它们会阻止清单在桌面上正确加载。
我是第一次读到它,所以我理解的技术行为可能是错误的,或者它不是完整的技术背景。
至少我得到的印象是,在桌面上,如果网站应 运行 作为网络应用程序,则应考虑两次。如果您仍然选择此解决方案,您可能仍需要查找有关它的更多信息,但我发布的链接可能是一个好的开始,并提供更多详细信息和链接。

决定不使用桌面网络应用程序的另一个原因可能是浏览器之间的兼容性,因为对技术选项的支持非常不同:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json#Browser_compatibility