gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:12 25 4
gpt4 key购买 nike

我正在 OpenShift(Django、Python 2.7、Apache)上开发一个网站,我希望它始终通过 HTTPS 提供服务。我认为这将是使用 .htaccess 和 OpenShift 的知识库 seems to show that it should be 的简单任务。 .但是,我已经为此苦恼了好几天,而且我不知道如何让它发挥作用。基本上,我无法让我的 .htaccess 文件对静态文件以外的任何内容进行操作。我根本无法获得重定向到任何内容的非静态资源请求。

这是我的目录结构,在 ~/app-root/repo 中。它使用"new"(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 来做到这一点.请求在到达 WSGI 之前应该使用 SSL。

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

最佳答案

我为此纠结了一小段时间,很快决定使用 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

关于python - .htaccess 在 OpenShift 上似乎被忽略了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27210756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com