python – .htaccess似乎在OpenShift上被忽略了
我正在使用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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |