在django中只将一个页面转换为https

时间:2013-10-29 13:30:26

标签: django

使用此https我可以将整个项目转换为https。

但我只想将一个页面转换为https。所有其他页面应该是http。

Exapmle我有以下网址

url(r'^related-product/$', related_product),
url(r'^payment-status/$', paymentStatus),
url(r'^get-kitchenstyle-images/$', singleKitchenStylesImages),
url(r'^makepayment/$', makepayment),
url(r'^add-accessory-to-session/$', add_accessory_to_session),

我必须在https中只拨打makepayment。所有其他网址为http

这可能吗? 如果可能的话我该怎么做

2 个答案:

答案 0 :(得分:2)

编辑您的apache配置文件 您的具体网址是makepayment

RewriteEngine On
# enable the Rewrite

RewriteCond %{HTTPS} !=on
# checks to make sure the connection is not already HTTPS
RewriteRule ^/?makepayment/(.*) https://%{SERVER_NAME}/makepayment/$1 [R,L]

答案 1 :(得分:1)

您可以通过以下方式强制执行ssl:

  • 代理
  • 服务器
  • django middleware

由于您只想重写一个网址,因此快速修复解决方案是添加重写规则,具体取决于您的服务器设置。你在用nginx吗? lighttpd的?阿帕奇?

您还可以找到一些易于调整以检查特定网址的middleware snippets on google