php - 在 Heroku Laravel 实例上设置 HTTPS 重定向

标签 php apache laravel ssl heroku

我有一个在 apache Heroku 实例上运行的 Laravel 5 构建,我试图确保所有流量都通过 https 转换,但我非常迷茫。

我已成功启动并运行 SSL 证书。但是,对于 Heroku,您不能直接在其服务器上编辑 .htaccess 文件。所以他们在this page上的推荐是设置 apache_app.conf 并通过将其放入 Procfile 来告诉 Heroku 读取它:

web: vendor/bin/heroku-php-apache2 -C apache_app.conf public/

但是,当我这样做时,我添加的几乎所有类型的 HTTPS 重写规则都会导致重定向循环或应用程序错误。这是我当前的配置:

RewriteEngine on

#Normal way (in case you need to deploy to NON-heroku)
RewriteCond %{HTTPS} !=on

#Heroku way
RewriteCond %{HTTP:X-Forwarded-Proto} !https

#If neither above conditions are met, redirect to https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

最佳答案

我没有通过 .htaccess 处理重定向,而是通过 this 来处理重定向方法

HttpsProtocol 中间件会将每个 Web 路由重定向到 HTTPS 协议(protocol)

关于php - 在 Heroku Laravel 实例上设置 HTTPS 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31467871/

相关文章:

php - 如何进行查询以获取特定的帖子 ID?

用 C/C++ 编写的 PHP 词法和语法分析器

python - 将代码放置在 Apache 和 Django 的文档根问题之外

php - 在 Laravel 5.1 中缓存延迟加载查询

php - 无法扫描里面的类/IlluminateQueueClosure.php

javascript - 我应该使用哪种方法来禁用按钮

javascript - 无法将数组从 php 函数返回到 ajax 请求

apache - 找不到基于名称的虚拟主机 url

java - org.apache.commons.httpclient.HttpClient 卡在请求上

php - Laravel 任意将退出状态码设置为自定义命令