我在OpenShift上使用了一个从Jekyll开始的应用程序,但是在上面运行octopress (我想这是相同的区别)。
我想自动将所有HTTP请求重定向到HTTPS。所以它只能在HTTPS上查看。
我看不出有什么方法可以让Jekyll在OpenShift上使用墨盒来完成这个任务。我可以通过修改我的config.ru文件在本地完成它,但这对OpenShift没有影响。有办法在我的申请中强制这样做吗?
发布于 2014-08-29 22:47:58
我设法解决了这个问题,我不太满意它作为一个“解决方案”,但它的工作,所以我张贴它。
Jekyll墨盒似乎使用WEBrick作为get服务器,我无法很好地控制它,使它执行SSL。
基本上,我制作了一个基于“Ruby1.9”墨盒的新应用程序,而不是Jekyll墨盒。这给了我一个apache托管应用程序。然后,我不得不按照大卫前面的建议,在源代码(!)中使用.htaccess文件我的章鱼博客文件夹:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 这招成功了。我不认为这是一个理想的解决方案,所以所有更好的解决方案都是受欢迎的。
以下是我为从Jekyll墨盒移动到Ruby1.9 cartridge所做的详细工作:
现在,我可以在我的回购和执行"git推送“(对openshift)和"git推送”。
强制SSL:
注意:现在我必须确保在我推到openshift之前做"rake generate“(虽然我想我可以在openshift更新之后将其自动化)。
发布于 2014-08-12 07:37:33
如果您的应用程序是由apache提供的,您可以尝试将一个.htaccess文件放在根目录下,其中包括:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L] https://stackoverflow.com/questions/25234089
复制相似问题