I have a django view that returns HTTP 301 on a curl request:
grapefruit:~ pete$ curl -I http://someurl
HTTP/1.1 301 MOVED PERMANENTLY
Date: Fri, 16 Oct 2009
In my case, commenting the SecurityMiddleware on the settings.py
file did the trick. I have to say that this only happens when running the runserver
command (aka. when testing). With Apache it doesn't falls into the redirect loop.
You are probably requesting the URL without a trailing slash, and have APPEND_SLASH
set to True (the default) in settings.py, so Django is redirecting to the URL including a slash.
My problem was PREPEND_WWW, when using it in localhost it returns a 301 error, I just created a local settings file and set it PREPEND_WWW = False