1

我们使用 Wix.com 开发了我们网站的新版本。由于我们在 iOS 上使用深度链接,我们需要在网站根目录中放置一个文本文件。事实证明,Wix 目前不支持这一点,尽管他们正在考虑它

“没问题,”我们想。我们可以使用 nginx 反向代理来提供apple-app-site-association文件并将其余流量代理到 Wix。我们使用以下 nginx 配置进行设置:

upstream wix {
    keepalive 100;
    server mgertner.wixsite.com:443;
}


server {
    listen              80;
    server_name         getcorkscrew.com;

    location / {
      proxy_http_version 1.1;
      proxy_pass https://wix/corkscrew-copy;
      proxy_pass_request_headers      on;
    }
}

server {
    listen              80;
    server_name         www.getcorkscrew.com;

    location / {
      proxy_http_version 1.1;
      proxy_pass https://mgertner.wixsite.com/corkscrew-copy;
      proxy_pass_request_headers      on;

    }
}

然而,当我们访问 www.getcorkscrew.com 时,我们只会得到一个空白的白页。显然,Wix 正在返回该页面,其中head包含一堆脚本和其他内容,但正文仅包含:

<body>
    <div id="SITE_CONTAINER"></div>
    <div comp="wysiwyg.viewer.components.WixAds" skin="wysiwyg.viewer.skins.wixadsskins.WixAdsWebSkin" id="wixFooter"></div>
    <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"errorBeacon":"bam.nr-data.net","licenseKey":"c99d7f1ab0","agent":"","beacon":"bam.nr-data.net","applicationTime":9,"applicationID":"1963269,30200700","transactionName":"ZFAHNkNYXUBQVEUKXF0aNgdDT19WRRhVCkBDVBEBWVxB","queueTime":0}
    </script>
</body>

似乎 Wix 以某种方式检测到代理的使用并阻止了正常的页面内容。但是当我们检查这一点时,我们发送的标头与原始请求完全相同。

关于 Wix 如何知道我们正在使用代理以及如何解决这个问题的任何想法?

4

1 回答 1

4

事实证明,这是特定于 Wix 呈现网站的方式。他们将网站的 URL 嵌入其中,index.html如果从另一个 URL 加载,该网站将不会呈现。我不认为他们是故意阻止的。对我来说,这只是渲染代码实现方式的副作用。

我们通过使用 nginx 子过滤器将嵌入的 URL 更改为index.html我们从中代理的 URL 来解决此问题。现在它工作正常。

于 2017-05-22T12:25:49.803 回答