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

时间:2018-12-30 00:12:44

标签: reactjs apache .htaccess progressive-web-apps manifest.json

我最近开始通过.htaccess文件对我的React PWA的URL强制使用HTTPS和非WWW表单,但这显然阻止了某些应用程序(例如pwabuilder.com)访问该应用程序的公共文件,例如它的网络清单。也就是说,某些应用程序(例如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

2 个答案:

答案 0 :(得分:3)

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

enter image description here

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

enter image description here

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

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

答案 1 :(得分:1)

已经了解了台式机上的清单文件,这将迫使另一个用户体验,至少在chrome中会更改整个窗口。虽然对于某些特殊页面而言这可能很酷,但也可能会造成混淆。
这是我阅读的三个链接:

  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永远都不想通过在桌面上显示特殊的应用程序窗口来打破常规的浏览体验,因此它们阻止了清单文件在桌面上的正确加载。
我只是第一次阅读它,所以我理解的技术行为可能是错误的,或者不是完整的技术背景。
至少我得到的印象是,在台式机上,如果网站应作为网络应用程序运行,则应考虑两次。但是,如果您选择此解决方案,则可能仍需要找到有关此解决方案的更多信息,但我发布的链接可能是一个不错的开始,并提供了更多详细信息和链接。

决定不支持桌面版Web应用的另一个原因可能是浏览器之间的兼容性,因为对技术选项的支持差异很大:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json#Browser_compatibility