我在Jekyll Cartridge上使用OpenShift上的应用程序,但是在顶部运行octopress(我认为差异相同)。
我想自动将所有HTTP请求重定向到HTTPS。因此,它只能通过HTTPS查看。
我没有看到使用墨盒在Jekyll上使用墨盒在OpenShift上执行此操作的方法。我可以通过修改我的config.ru文件在本地完成,但这对OpenShift没有影响。有没有办法强制我的申请?
答案 0 :(得分:1)
如果你的应用程序是由apache提供的,你可以尝试在你的root上放一个.htaccess文件,其中包含:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 1 :(得分:1)
我设法解决了这个问题,我对它作为一个"解决方案"并不太满意,但它确实有效,所以我发布了它。
Jekyll墨盒似乎使用WEBrick作为网络服务器,而我无法控制它以使其强制执行SSL。
基本上我基于" Ruby 1.9"制作了一个新的应用程序。墨盒,而不是Jekyll墨盒。这给了我一个apache托管的应用程序。然后,我必须使用David先前建议的.htaccess文件,在我的octopress博客的源(!)文件夹中:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
这就是诀窍。我不认为它是一个理想的解决方案,所以欢迎所有更好的解决方案。
这里我详细介绍了从Jekyll墨盒转移到Ruby 1.9墨盒的所有内容:
现在我可以在我的仓库工作并执行" git push" (对于openshift)和" git push"。
强制使用SSL:
注意:现在我必须确保" rake generate"在我推送到openshift之前(虽然我想我可以在更新后的openshift中自动执行此操作)。