>백엔드 개발 >PHP 튜토리얼 >Laravel 애플리케이션에서 HTTPS를 강제하는 방법은 무엇입니까?

Laravel 애플리케이션에서 HTTPS를 강제하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-11 15:57:14994검색

How to Force HTTPS in Laravel Applications?

Laravel에서 HTTPS로 리디렉션

Laravel에서는 미들웨어 클래스를 활용하여 애플리케이션에 HTTPS를 강제 적용할 수 있습니다. 샘플 구현은 다음과 같습니다.

namespace MyApp\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;

class HttpsProtocol {

    public function handle($request, Closure $next)
    {
            if (!$request->secure() && App::environment() === 'production') {
                return redirect()->secure($request->getRequestUri());
            }

            return $next($request); 
    }
}

이 미들웨어를 활성화하려면 Kernel.php 파일의 미들웨어 그룹에 추가하세요.

protected $middleware = [
    // ...
    'MyApp\Http\Middleware\HttpsProtocol'       
];

기본적으로 웹 미들웨어 그룹이 적용됩니다. 모든 경로에 적용되므로 추가 구성이 필요하지 않습니다.

Cloudflare 고려 사항

Cloudflare를 사용하는 경우 리디렉션 루프가 발생할 수 있습니다. 이는 Cloudflare가 HTTPS를 나타내는 "X-Forwarded-Proto" 헤더를 사용하여 HTTP 요청을 전달하기 때문입니다. 이 문제를 해결하려면 미들웨어에 다음 줄을 추가하세요.

$request->setTrustedProxies([$request->getClientIp()]);

이것은 Cloudflare에서 제공한 IP와 헤더를 신뢰하여 루프를 깨뜨립니다.

Laravel 버전 업데이트< /h3>

Laravel 버전 5.3 이상: 미들웨어 클래스를 Kernel.php 파일의 "web" 미들웨어 그룹.

Laravel 버전 5.7 이상:

  • 환경에는 env('APP_ENV') 대신 App::environment()를 사용하세요. 기반 검사.
  • URL::forceScheme('https')은 리디렉션되지 않고 단지 다음과 같은 링크를 구성합니다. HTTPS.

위 내용은 Laravel 애플리케이션에서 HTTPS를 강제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.