2017-05-19 49 views
1

我們使用Wix.com開發了我們網站的新版本。由於我們在iOS上使用深度鏈接,因此我們需要place a text file in the website root。原來Wix目前不支持這個,雖然他們是considering it通過nginx的代理網站結果爲空白頁

「沒問題」,我們認爲。我們可以使用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,我們只是得到一個空白頁回來。顯然,頁面是由維克斯返回,和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如何知道我們使用代理以及我們如何解決這個問題的任何想法?

回答

1

原來這是Wix呈現網站的具體方式。他們將網站的網址嵌入其index.html,並且如果網站是從其他網址加載的,則該網站不會呈現。我不認爲他們故意阻止了這一點。對我來說,它看起來像渲染代碼的實現副作用。

我們通過使用nginx子過濾器將index.html中嵌入的URL更改爲我們正在代理的URL來解決此問題。現在它工作正常。

+0

嗨。剛剛通過Google找到您的回覆。我還添加了一個sub_filter'sub_filter「wixdomain.wixsite.com」「$ host」;''和'sub_filter_once off;'但該網站仍然不呈現並且是白色的。你使用了什麼sub_filter? – Musterknabe

+0

您是否檢查了'publicModel'的值在subfiltered'index.html'中?在我看來,至少你需要在過濾器源代碼中包含站點名稱(即'wixdomain.wixsite.com/sitename')。 –

+0

你的意思是在源代碼內的'publicModel' json?它已經是「正確的」,'var publicModel = {「domain」:「wixsite.com」,「externalBaseUrl」:「http:\/\/localhost:8081 \/compliance」,「unicodeExternalBaseUrl」:「http:\/\/localhost:8081 \/compliance「' 或者我們在談論不同的事情? – Musterknabe