web-dev-qa-db-ja.com

Django HTTP 301を返しますか?

カールリクエストでHTTP 301を返すDjangoビューがあります。

grapefruit:~ pete$ curl -I http://someurl
HTTP/1.1 301 MOVED PERMANENTLY
Date: Fri, 16 Oct 2009 19:01:08 GMT
Server: Apache/2.2.9 (Win32) mod_wsgi/2.5 Python/2.6.2 PHP/5.2.6
Location: http://someurl
Content-Type: text/html; charset=utf-8

Curlからページのコンテンツを取得できません。ただし、ブラウザでページにアクセスすると、期待どおりのコンテンツが表示されます。

何か案は?

ありがとう、ピート

55
slypete

末尾のスラッシュなしでURLをリクエストしている可能性があり、APPEND_SLASH settings.pyでTrue(デフォルト)に設定されているため、Djangoはスラッシュを含むURLにリダイレクトしています。

159
Daniel Roseman

私の問題はPREPEND_WWWでした。localhostで使用すると301エラーが返され、ローカル設定ファイルを作成してPREPEND_WWW = Falseに設定しました

4
AbeEstrada

私の場合、settings.pyファイルでSecurityMiddlewareをコメント化するとうまくいきました。これは、runserverコマンドを実行している場合にのみ発生することを言わなければなりません(別名:テスト時)。 Apacheではリダイレクトループに陥りません。

1
Hassek