【问题标题】:force https on a laravel project在 laravel 项目上强制 https
【发布时间】:2021-08-20 11:54:07
【问题描述】:

我试图强制我的 laravel 项目使用 https 而不是 http,我尝试了一切:

我将这些行添加到我的 HTACCESS 文件中:

RewriteEngine On 

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我使用了 AppServiceProvider :

use Illuminate\Support\Facades\URL;

URL::forceScheme('https');

我也通过中间件完成了,但我的 URL 似乎不会很快改变。

知道为什么它不起作用!

【问题讨论】:

标签: laravel https


【解决方案1】:

好的,我修复了它,我不知道有两个 .htaccess 文件,我需要将代码添加到公共目录中的一个以应用更改。

现在它工作得很好,只需将这些行添加到 htaccess 文件中:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

【讨论】:

  • 第二个 htaccess 驻留在哪里?这是一个有趣的问题
  • @Flame 一个在public目录下,另一个在.env所在的项目目录下
  • 根目录中的那个不应该在那里,因为它应该超出直接访问的范围。也就是说,您永远无法查看 www.example.com/.env 并在那里看到您的 env 文件。
  • @Flame 我的 .env 和 .htaccess 在根目录中,我应该删除它们吗?
  • .env 需要保留在根目录中。但重要的是这个目录不可访问,这意味着apache/nginx应该专门指向my_project/public。所以唯一暴露的就是public/index.php。所以.htaccess可以在根文件夹中删除(但也许你应该先检查一下里面写了什么)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 2021-05-20
  • 2013-07-27
  • 2020-12-11
相关资源
最近更新 更多