代码之家  ›  专栏  ›  技术社区  ›  GeekTantra

如何将AppEngine 500错误重定向到其他位置?

  •  1
  • GeekTantra  · 技术社区  · 16 年前

    如何将500个错误从google appengine重定向到其他位置。

    以下是一个示例场景:

    所有请求发送到 http://example.appspot.com/testfile.ext 如果出现500错误,应重定向到 http://www.example.com/testfile.ext

    这基本上是将500错误与302重定向相结合。如果没有,是否有解决办法?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Niklas Rosencrantz    16 年前

    它可以用我知道的最简单的方法重定向故障

       try:
        #stuff    
       except:
         self.redirect('http://www.example.com/testfile.ext')
         return
    

    或者这个稍微复杂一点的重定向可以从301修改为302

    def redirect_from_appspot(wsgi_app):
        def redirect_if_needed(env, start_response):
            if env["HTTP_HOST"].startswith('my_app_name.appspot.com'):
                import webob, urlparse
                request = webob.Request(env)
                scheme, netloc, path, query, fragment = urlparse.urlsplit(request.url)
                url = urlparse.urlunsplit([scheme, 'www.my_domain.com', path, query, fragment])
                start_response('301 Moved Permanently', [('Location', url)])
                return ["301 Moved Peramanently",
                      "Click Here" % url]
            else:
                return wsgi_app(env, start_response)
        return redirect_if_needed
    

    案例取决于500错误是您的应用程序还是google服务器。最简单的方法是在gae控制台中使用它,我们可以请求应用引擎团队启用,或者使用yaml或最正式的regex。简单的方法是尝试,除了和重定向。

    推荐文章