2017/08/25 2019/12/06
本記事ではアボート処理とリダイレクトについて説明する。abortの出番はWEB上のコンテンツを作る上では重要である。よくあるのはアクセス禁止、ファイルが存在しないケースだろう。特に後者はCMSの世界ではソフトウェア404を使うケースが多い。でもグーグルがソフトウェア404だと正しく認識してくれないため検索インデックスに該当ファイルが無いという認識が持てず古いインデックスを更新しません。結果的に悪い評価になってしまうことがあります。このような場合はabort関数を使用してハードウェア404を返してあげるとベターです。
アボート処理はWEB上で異常を示すエラーコードと共に使用するものです。
1 2 3 4 |
from bottle import route, abort @route('/404') def 404error(): abort(404, "File not Found.") |
リダイレクト処理は何らかの理由があって、最初のURLから別のURLへ転送します。
1 2 3 4 |
from bottle import redirect @route('/wrong/url') def wrong(): redirect("/right/url") |
※この2つの関数redirect(),abort()は必ず実行するとException Errorを起こしますが気にする必要はありません。使うと発生するそのようなものと解釈してください。元々そのような仕様で作られています。つまり何らかの異常を示す際に使う関数であるからと理解するとわかり易いかもしれません。エラーを抑制したい場合はBottleのconfigでcatchallをFalseに設定することで止めることができます。