App Engine 405 Method Not Allowed

不太清楚為何webapp 為何沒有 implement HEAD method, 所以一開始在 MyAudioCast 的 DashBoard 就常看到一些錯誤, 多是一些 web crawler, 但卻都是 405 Method Not Allowed 的錯誤訊息, 用 curl -I 來測也是得到相同的回應, 本來不以為意, 後來為了要讓 MyAudioCast 上面的 Podcast 可以 submit 到 iTunes store, 卻也得到 405 的錯誤訊息, 無法 submit, 才覺得這事情有點大條 XD

google 之後找到一篇寫到說, 用 app engine 開發的網站無法 digg, 就是因為 405 這個問題, 因為要新增網址到 digg 的時候 digg 會用 HEAD method 來確認網頁是存在的, 所以說先前 Dashboard 上看到的 web crawler 也會先用 HEAD 來檢查網頁是否存在, 這麼一來只要是 HEAD method 都回 405 Method Not Allowed 的話, 那機器人不就都不來了嗎?

不過這問題其實很好解決, 幸好這次在開發的時候有先寫一個 RequestHandler 來繼承 webapp.RequestHandler 所以直接在 RequestHandler 增加一個 head method 就可以解決這個了。

def head(self, *args):  
    pass

最簡單的就是這樣 XD 不過不知道是否改為執行 get method 然後把 content 去掉只留 header 這樣會不會比較好 :p

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!