-1

所以我有一個靜態網站託管在S3上。我將其設置爲與AWS證書管理器,路由53和雲端一起工作,以便可以使用https訪問該站點。爲什麼我的s3託管網站,我通過cloudfront設置SSL只能偶爾工作?

這似乎是一種工作後,很多小提琴,但它然後打破超級怪異。

例如,我可以去以下沒有問題:

www.myurl.com 
https://www.myurl.com/ 
https://myurl.com/ 
http://myurl.com/ 

太好了!但是,然後我點擊這個主頁上的鏈接,帶我到另一個名爲login.html的頁面,但是這隻適用於上述幾個鏈接。例如,如果我轉到https://myurl.com並單擊鏈接,我成功導航到https://myurl.com/login.html

但是,如果我去https://www.myurl.com/並點擊相同的鏈接,它只是繼續加載,並永遠不會顯示頁面。

還有其他一些奇怪的事情發生在其他頁面上,但我想它們與這個問題有關,我根本弄不明白。爲什麼它能夠工作,但只是有點零散,只有某些網址結構?

編輯:所以login.html實際上從https://www.myurl.com開始實際加載時點擊按鈕,但login.html的顯示都搞砸了,看起來到處都是/搞砸了。雖然從https://myurl.com仍然工作正常。

另一條線索:剛纔我意識到當我通過雲鋒URL /域它是所有搞砸佈局明智不如去我的網站 - 有趣......

更新:我有幾件事情搞砸周圍 - 似乎我解決了一些鏈接問題,剩下的問題幾乎可以肯定與angularJS及其與雲端的交互。以下錯誤消息在我的控制檯中,我懷疑這可能是解決問題的線索。

angular.min.js:107 ReferenceError: people is not defined 
    at eval (eval at <anonymous> (jquery.js:2), <anonymous>:4:29) 
    at eval (<anonymous>) 
    at jquery.js:2 
    at Function.globalEval (jquery.js:2) 
    at m.fn.init.domManip (jquery.js:3) 
    at m.fn.init.after (jquery.js:3) 
    at b (angular.min.js:188) 
    at Object.enter (angular.min.js:189) 
    at angular.min.js:283 
    at angular.min.js:54 
+0

您的頁面是否參考腳本,圖片或樣式表?它們是通過相對鏈接(例如'scripts/foo.css)還是絕對地址(例如'http:// myurl.com/scripts/foo.css')引用的?您可以使用瀏覽器的調試工具查看未下載的文件 - 首先查看網絡部分。 –

+0

有像http://example.com這樣的域名,當你需要一個示例URL時,它們被官方保留。請不要在問題中填寫其他人的域名。 –

+0

你有什麼設置你的雲端? – Rajesh

回答

0

好像您的問題直接關係到你的域明確www前綴,是你可以很容易地重現。

對我來說,你的問題,是因爲我們有在你的API或其它的ressource限制/ CSP政策未來(好像people是出頭即取出),只有不www的酒莊被允許訪問它,從而該錯誤只出現在www版本上。

您可以嘗試查找阻止規則,但我的建議是「擺脫」www域。一般慣例是你不希望你的用戶在不同的URL上瀏覽你的網站,而是把前綴域的重定向轉換爲非前綴域。通過這種方式,用戶將始終使用相同的鏈接,從而避免重複使用對SEO不利的內容,並且不會對SSL證書造成痛苦。

有一個good article如何把一個重定向到位了靜態S3網站,基本上你需要創建與你www產地同名的新桶,去鬥屬性靜態網站託管部分並將所有請求重定向到另一個主機名。文章更深入地解釋瞭如何配置https域,我不會在這裏展開,但我邀請您參考。

相關問題