【发布时间】:2018-12-30 00:12:44
【问题描述】:
我最近开始通过 .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
【问题讨论】:
-
您能否分享您的 .htaccess 以及无法访问的公共文件之一的确切路径?
-
我用 .htaccess 文件编辑了我的问题
-
您的
.htaccess文件似乎没有任何“错误”可以阻止这些应用程序访问这些文件。正如您可以使用任何浏览器访问该文件一样,其他应用程序也应该如此。 ...除非这些其他应用程序没有请求规范 URL (HTTPS + www) 并且不遵循重定向?!您应该检查您的服务器的访问日志以查看哪些请求正在访问您的服务器以及您的服务器如何响应。这些其他应用程序不会给您带来更有意义的错误吗? -
https://aurora.igloo.ooo/manifest.json的响应来自“nginx/1.2.1”,而不是 Apache? -
@David 是的 - 我真的只是想引起 OP 的注意,因为他们在问题中没有提到这一点。如果 nginx 被用作代理,那么它可能会改变问题的焦点。
标签: reactjs apache .htaccess progressive-web-apps manifest.json