Fixed an error when the APP_FORCE_HTTPS=true parameter is set, and nginx sends the http scheme.

This commit is contained in:
Leonid Nikitin 2024-04-24 20:53:59 +05:00
parent e8b79ca457
commit 481dcac2cc
Signed by: kor-elf
GPG Key ID: 3C0F720C170F6E1D

View File

@ -5,6 +5,7 @@
use App\Enums\CacheTag; use App\Enums\CacheTag;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
final class ProjectDomainAndLanguage extends ProjectLanguage final class ProjectDomainAndLanguage extends ProjectLanguage
@ -12,6 +13,12 @@ final class ProjectDomainAndLanguage extends ProjectLanguage
public function handle(Request $request, Closure $next): Response public function handle(Request $request, Closure $next): Response
{ {
$httpHost = $request->getSchemeAndHttpHost(); $httpHost = $request->getSchemeAndHttpHost();
if (
config('app.force_https') === true
&& Str::startsWith($httpHost, 'http://')
) {
$httpHost = Str::of($httpHost)->replaceFirst('http://', 'https://')->toString();
}
$seconds = 3600; $seconds = 3600;
$project = CacheTag::Project->getCache()->remember(self::class . $httpHost, $seconds, function () use ($httpHost) { $project = CacheTag::Project->getCache()->remember(self::class . $httpHost, $seconds, function () use ($httpHost) {