2016-12-30 104 views
0

背景S3靜態網站:HTTP返回410

我對S3的靜態網站,收錄在谷歌的HTML頁面的10000S。我正在轉向新版本,並希望從Google索引中刪除舊頁面(可能不再存在)。我讀過網上,最有效的方式做到這一點是使用S3的靜態網站

時返回HTTP 410(已刪除)

問題

http://docs.aws.amazon.com/AmazonS3/latest/dev/CustomErrorDocSupport.html,你不能返回一個HTTP 410

API網關

我創建API網關的模擬集成,其返回HTTP 410然後我配置了我的S3存儲到特定的前綴自動重定向到該網址。但是,看到的返回碼是HTTP 301(用於第一個重定向)。如果我直接拿到API終點,我收到了410成功,但是如果我通過S3 GET訪問API,那麼錯誤代碼是301

接下來會發生什麼

如果任何人有怎樣的想法要在S3上託管的靜態網站上返回HTTP 410,請告訴我。

此外,如果你能想到一個更好的選擇的脫指數舊的網頁上谷歌(手動工具不是解決辦法,因爲我有大量的頁面),讓我知道:)

回答

0

我真的覺得,一個更好的答案是用一個非常簡單的數據庫表將服務器放在S3內容的前面。你真正的問題是確定一個410對一個404.也就是說,你知道一個頁面已經消失,但你如何區分錯別字或其他錯誤?

我想象的是一個由路徑名索引的表 - 即/path/to/my/file.html和某種狀態。服務器接受完整路徑的請求,在數據庫中進行查找併爲頁面提供服務(假設頁面處於「活動」或「可用」狀態),或者如果您知道該頁面未處於活動狀態,則爲410。如果頁面無法在數據庫中找到則返回一個404

這兩個問題我用這種方法看到的是:

  1. 數據庫的初始羣體。如果您已經從S3中刪除了頁面,那麼您將如何知道何時放入頁面以及「不可用」標誌?我不確定有多少頁面在討論,但第一次可能會很大。
  2. 維護 - 下次需要停用某些頁面時,您可能需要一些管理界面。

有一些內容管理系統可以爲你做一些這樣的事情,或者寫一個簡單的服務器來完成這個任務並不算太壞,直到我列出的問題出現。

+0

感謝您的建議。然而,這背後的想法是無服務器。 – PERPO