代码之家  ›  专栏  ›  技术社区  ›  Samuele Dassatti

强制SSL后无法访问Web清单

  •  6
  • Samuele Dassatti  · 技术社区  · 6 年前

    我最近开始通过.htaccess文件强制我的react pwa的url使用https和非www表单,但这显然阻止了某些应用程序(如pwabuilder.com)访问应用程序的公共文件,如其Web清单。也就是说,有些应用程序,比如ChromeMobile,允许我访问清单。我怎样才能让它始终可以访问?

    我的.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 回复  |  直到 6 年前
        1
  •  3
  •   David user10336229    6 年前

    aurora.igloo.ooo 有一个奇怪的服务器并阻止某些请求访问 manifest.json .
    当我第一次单击你的链接时,我看到 杰森 . 然后,我通过删除文件路径调用了主页,单击浏览器历史记录中的后退以再次查看清单,并显示了这一点(HTTP响应代码200):

    enter image description here

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

    enter image description here

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

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

        2
  •  1
  •   David user10336229    6 年前

    阅读了桌面上的清单文件后,它将强制另一个用户体验,至少在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