1

EC2 サーバーを切り替えるときに、AWS の IP アドレスを変更することがよくあります (はい、該当する場合は Elastic IP を使用します)。他のアプリケーションをホストしていた IP アドレスを取得する場合があります (もちろん問題ありません)。エンド ユーザーが古いリンクをクリックすると、サーバーにアクセスします (これは問題ありません)。しかし、これらの HTTP GET リクエストには「リファラー」ヘッダーが含まれているため、通常の 404 エラーにより、自動化された Django メールが開発者に送信されます!

次の Python コードを使用して、エラー メールを簡単に再作成できます。

import urllib2
req = urllib2.Request('http://my_website.com/some/url/we/dont/have')
req.add_header('Referer', 'http://whatever.i.want')
request = urllib2.urlopen(req)

Referer ヘッダーがコメントアウトされている場合、Django はメールを送信しません。私たちのウェブサイトに実際に壊れたリンクがある場合でも、メールを送信したいので、False
に設定したくありません。 を使用してフィルタリングできません。論理が逆になり、b.正規表現はパスのみをスキャンし、ホスト名はスキャンしません。SEND_BROKEN_LINK_EMAILS
IGNORABLE_404_URLS

ヘルプ?

4

1 に答える 1

1

私はおそらく、例外をキャッチし、リファラー ヘッダーを調べ、別の例外を発生させるか (おそらくまだメールで送信されます)、フロント ページへの単純なリダイレクトを行うミドルウェアを作成します。Http404さらに良いのは、ユーザーが現在の場所に行き着いた理由を説明するカスタム ページを作成し、そこにリダイレクトすることです。

于 2012-12-24T10:40:42.477 に答える