我运行的是django1.8和python2.7。我注意到我的站点上有一个重定向问题,它似乎只影响使用HTTPS协议的生产服务器,而不影响运行纯HTTP的登台或开发服务器。在
举个例子,我发现了两个简单的东西,它们目前在HTTPS上对我不起作用:
访问不带尾随斜杠的https://www.eduduck.com/support/thanks将重定向到https://www.eduduck.com/,而不是像我在(默认设置)append_slash=True时所预期的那样追加斜杠并重定向到https://www.eduduck.com/support/thanks/。
使用HTTPS时,“错误地”提交有效的支持表单将重定向到https://www.eduduck.com/网站基本url,但可以正确使用HTTP,重定向到/support/thanks/
都是例行公事,或者应该是。对此非常困惑;非常感激地接受了任何建议。NB:问题只出现在HTTPS下
支持/网址.py
from django.conf.urls import url
from django.views.generic import TemplateView
from . import views
urlpatterns = [
url(r'^$', views.support, name='support'),
url(
r'^thanks/$',
TemplateView.as_view(template_name ='support/thanks.html')),
]
支持/表单.py
^{pr2}$支持/视图.py
from django.core.mail import send_mail
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.template import RequestContext
from .forms import SupportForm
import logging
logger = logging.getLogger(__name__)
def support(request):
"""Provide a support/contact email form"""
logger.info('Support view')
if request.method=="POST":
form = SupportForm(request.POST)
if form.is_valid():
cdata = form.cleaned_data
send_mail(cdata['subject'],
cdata['message'],
cdata.get('email', 'example@example.com'),
['example@example.com'],
)
return HttpResponseRedirect('/support/thanks/')
else:
form = SupportForm()
return render(
request,
'support/support.html',
{'support_form': form},
)
最后,是的,这是我的nginx配置。我有一个旧的sites-enabled/default配置文件,我删除了它。这取得了一些进展,但我还必须编辑我的生产站点的配置文件。最终(工作)服务器块的差异如下所示:
正如我在前面的评论中提到的,尽管阅读了这些文档,我仍然不清楚[::]:80有什么问题,我认为这是为了与IPv6兼容。在
相关问题 更多 >
编程相关推荐