我怎樣才能做到這一點,我是新來的Python和燒瓶,我想我404到外部URL重定向這樣的:如何重定向到一個外部的404頁蟒蛇燒瓶
@app.route('404')
def http_error_handler(error):
return flask.redirect("http://www.exemple.com/404"), 404
但不起作用我得到
找不到 在服務器上找不到請求的URL。如果您手動輸入網址,請檢查拼寫並重試。
我怎樣才能做到這一點,我是新來的Python和燒瓶,我想我404到外部URL重定向這樣的:如何重定向到一個外部的404頁蟒蛇燒瓶
@app.route('404')
def http_error_handler(error):
return flask.redirect("http://www.exemple.com/404"), 404
但不起作用我得到
找不到 在服務器上找不到請求的URL。如果您手動輸入網址,請檢查拼寫並重試。
你應該嘗試這樣的事:
from flask import render_template
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
我沒有在同一個項目上的404.html文件,我需要重定向到另一個網站,仍然有我的404狀態碼,我已經多次查看文檔.. – Phosy
那麼你不必實際重定向到模板,像這樣做返回重定向(「http://www.example.com」,代碼= 302) – lapinkoira
它只是一個示例來展示如何處理錯誤,然後在你內部做你想做的任何事 – lapinkoira
你不能做到這一點 - 用戶代理(在大多數情況下,瀏覽器)着眼於狀態代碼返回以確定要執行的操作。當您返回404狀態碼時,您對用戶代理所說的是「我不知道您要求的是什麼東西」,然後用戶代理可以:
redirect
實際上creates a little HTML response (via werkzeug.exceptions),其通常的端用戶不會看到,因爲一些組合用戶代理遵循Location
頭部看到302響應。但是,當您提供自己的狀態碼(404)時,您將覆蓋狀態碼。
修復的方法是任一:
或寄404 a meta:refresh
and/or JavaScript redirect(略更好的,仍然混亂):
return redirect("/where-ever"), 404, {"Refresh": "1; url=/where-ever"}
嘗試,而不是RO這ute
@app.errorhandler(404)
def own_404_page(error):
pageName = request.args.get('url')
print(pageName)
print(error)
f = open('erreur404.tpl')
return f.read()
問題可能是您通過重定向傳遞的404狀態。 –