Django returning HTTP 301?
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 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
I can't get the page's content from curl. However, if I visit the page with a browser, I see the content as expected.
Any ideas?
Thanks, Pete
Solution 1:
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.
Solution 2:
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
Solution 3:
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.