@error(404)
def error404(error):
return 'Nothing here, sorry'
これは、bottle framework
の404の応答方法です。しかし404で私は特定のURLにhttp://abc.com/と言うにリダイレクトしたいと思う。出来ますか? urlobjectが作成されると.CODEインスタンスは、ページのコードを返し特定のURLにリダイレクトする方法404
@error(404)
def error404(error):
return 'Nothing here, sorry'
これは、bottle framework
の404の応答方法です。しかし404で私は特定のURLにhttp://abc.com/と言うにリダイレクトしたいと思う。出来ますか? urlobjectが作成されると.CODEインスタンスは、ページのコードを返し特定のURLにリダイレクトする方法404
import urllib
url = urllib.urlopen('www.google.com/testing') #a 404 address
if url.code == 404:
url = urllib.urlopen('www.google.com')
、
@error(404)
def error404(error):
from bottle import redirect
# maybe test the error to see where you want to go next?
redirect(new_url, 303) # HTTP 303 should be used in this case
EDIT私はこれを行うことができ、100%わからないんだけど、と私はできません今すぐテストしてください。しかし、後でテストして、それに私を打つまで答えを更新します。
@app.error(404)
def error(err):
bottle.response.status = 303
bottle.response.header['Location'] = '/'
答えを出すのではなく、その理由を説明できますか? – ArtB
使用しているボトルのバージョンは?私はボトルのエラー処理に問題があります - 私は、ドキュメントがコードで最新ではないためだと思います。私はボトル0.9.devを使用して上記のリダイレクトコードを試して、500のレスポンスコードとディスプレイ "Critical Error"エラーを受け取りました: HTTPResponse( 'HTTP Response 303'、) – cnk
遅延の申し訳ありません、しばらくの間、StackOverflowをオフにしていました。この例は、GitのHEADバージョンを参照しています。その間に変わったかもしれないが、私はそれを疑う。あなたのアプリで正確なエラーが発生したことを確認しましたか? 500は通常、コード内にエラーを示唆します。 – hayavuk