Как я могу перенаправить ошибки AppEngine 500 в другое место? - PullRequest
1 голос
/ 24 февраля 2010

Как я могу перенаправить 500 ошибок из Google Appengine в другое место.

Ниже приведен пример сценария:

Все запросы на http://example.appspot.com/testfile.ext в случае ошибки 500 следует перенаправить на http://www.example.com/testfile.ext

В основном это ошибка 500 с перенаправлением 302. Возможно ли, если нет, то есть обходной путь?

1 Ответ

0 голосов
/ 25 февраля 2010

Это может перенаправить сбой простым способом, который я знаю

   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. Самый простой способ - попробовать, кроме и перенаправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...