私は自分のウェブサイトにある既存のURLのエイリアスを作成できるURLエイリアスアプリを構築しようとしています。Django:リクエストオブジェクトの作成/変更
私はrequest.META['PATH_INFO']
は別名のデータベース・レコードと照合された場合、ミドルウェア経由でこれをやろうとしている:
try:
src: request.META['PATH_INFO']
alias = Alias.objects.get(src=src)
view = get_view_for_this_path(request)
return view(request)
except Alias.DoesNotExist:
pass
return None
しかし、これは正常に動作することが(少なくとも)という生命重要ですPATH_INFOが宛先パスに変更されます。
開発者がテストリクエストオブジェクト(http://djangosnippets.org/snippets/963/,http://djangosnippets.org/snippets/2231/)を作成できるようにするためのスニペットがありますが、これはテスト目的のためのものです。
もちろん、これらのスニペットは実際の環境での使用に適している可能性がありますが、Djangoのリクエスト処理についての知識はこれを評価するにはあまりにも未開発です。
リダイレクトは、彼らはそれが簡単にコードを維持するために作るので良くないだけですが、また - 彼らはあなたがページごとに固有のURLを持っていることができます。おそらくあなたの検索ランキングにとっては良いでしょう。 – Evgeny
ロボットがエイリアスURLに直接アクセスするのをブロックすることでこれを回避できますか? –