简体   繁体   中英

Django redirect loop in form submit

Just to clarify, this is the first time I'm putting a django website to production.

I have a simple website in django that works locally. But when I deploy it in the production server it enters in redirect loop when I submit a form. Then the browser just tells me that a redirect loop occurred and asks to empty the cache and so on...

This problem happens in the admin. I don't know if it would happen in the frontend because it just doesn't have any form in the frontend.

Notes:

  • I don't have any funky middlewares.
  • I tested in a virtual machine with more or less the same specs of the production server and it works fine.
  • The submitted data is correctly handled and saved
  • The rest of the website is fine

I'm using apache with wsgi in a shared host, through a .htaccess.

At this point I don't rule out the chance of a dns misconfiguration, but I already checked and looks fine.

.htaccess:

AddHandler wsgi-script .wsgi
DirectoryIndex app22.wsgi

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ app22.wsgi/$1 [QSA,PT,L]
</IfModule>

app22.wsgi:

import os, sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'BTT.settings'

path = '/home/bttmonch/apps'
if path not in sys.path:
    sys.path.append(path)

path = '/home/bttmonch/apps/ENV/lib/python2.7/site-packages'
if path not in sys.path:
    sys.path.append(path)

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

At this point I created a fresh new app with just the admin activated, to see if it was some codding issue and put it on the server. And the same thing happens.

I am using the same .htaccess and .wsgi files that I mentioned before.

My urls.py is just the basic:

from django.conf.urls.defaults import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)

I am accessing the app via test.domainname.com. I already tried accessing it through test.domainname.com, test.domainname.com/app22.wsgi, domainname.com/test/ and domainname.com/test/app22.wsgi...

After poking around in the server I stopped getting a redirect loop. But now every time I save a form I get a 403 error. Than I clear the browser cookies and all comes back to normal, and the form data is successfully saved in the database.

At this point a just don't now what else to try...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM