如何将500个错误从Google appengine重定向到其他位置。
以下是一个示例场景:
如果出现500错误,http://example.appspot.com/testfile.ext的所有请求都应重定向到http://www.example.com/testfile.ext
这基本上是将500错误与302重定向相结合。是否可以解决这个问题?
答案 0 :(得分:0)
它可以用我知道的最简单的方式重定向故障
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错误是您的应用或谷歌服务器。最简单的是在gae控制台中使用它我们可以请求应用引擎团队启用,或者yaml或大多数正式的正则表达式。简单的方法是尝试,除了和重定向。