加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – .htaccess似乎在OpenShift上被忽略了

发布时间:2020-12-20 13:45:59 所属栏目:Python 来源:网络整理
导读:我正在使用OpenShift(Django,Python 2.7,Apache)上的一个站点,我希望它始终通过HTTPS提供服务.我认为这将是一个简单的任务,使用.htaccess和OpenShift的知识库 seems to show that it should be.但是,我已经为此困扰了好几天,我无法弄清楚如何让它工作.基本上
我正在使用OpenShift(Django,Python 2.7,Apache)上的一个站点,我希望它始终通过HTTPS提供服务.我认为这将是一个简单的任务,使用.htaccess和OpenShift的知识库 seems to show that it should be.但是,我已经为此困扰了好几天,我无法弄清楚如何让它工作.基本上,我不能让我的.htaccess文件操作除静态文件之外的任何东西.我根本无法获得非静态资源的请求重定向到任何东西.

这是我的目录结构,在?/ app-root / repo中.它使用的是“新”(2014年3月左右?)OpenShift目录结构.

/MyProject
    settings.py
    urls.py
    [etc.]
/[app directories]
/static
/wsgi
    wsgi.py
    static -> ../static
manage.py
requirements.txt

好吧,经过多次挫折之后,我一直在用最小的可行性.htaccess进行测试,看看我是否可以得到任何工作.它看起来像这样:

RewriteEngine on
RewriteRule .* http://www.google.com

一切都应该去谷歌.如果我把它放在wsgi目录中,我的所有静态文件都会被重定向到google.com,但没有别的办法.如果我把它放在?/ app-root / repo中,什么都没发生.就像文件不存在一样.

同样,如果我使用OpenShift建议的命令并将文件放在wsgi中,我的静态文件会被重定向到使用HTTPS,但没有别的办法.

我也尝试过WSGI和Django这样的事情,比如像sites like this one所建议的那样将os.environ [‘HTTPS’] =“on”添加到wsgi.py.这是无效的,我真的不能说我对这些知识非常了解各种设置,以了解我需要添加什么,但理想情况下我想通过.htaccess这样做.请求应在使用SSL之前访问WSGI.

我需要做什么才能使我的.htaccess文件适用于所有请求?为什么OpenShift忽略.htaccess文件不在wsgi中?

解决方法

我用这个打了很短的时间,并迅速决定使用django-ssl-redirect中间件包.

我在OpenShift上的全部原因是为了避免与这些配置问题作斗争,所以我有点失望,我不得不诉诸于此.

不过,这里有:

只需将其添加到MIDDLEWARE_CLASSES即可

'ssl_redirect.middleware.SSLRedirectMiddleware',

将其添加到requirements.txt

django-ssl-redirect==1.0

在设置中添加这样的东西(我把它放在我在多个环境中共享的基本设置文件中,因此“if”).

if os.environ.has_key('OPENSHIFT_REPO_DIR'):
    SSL_ON = True
    SSL_ALWAYS = True

更多信息:https://bitbucket.org/nextscreenlabs/django-ssl-redirect

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读