> 백엔드 개발 > PHP 튜토리얼 > 미들웨어를 사용하여 Laravel 5에서 HTTPS를 강제하는 방법은 무엇입니까?

미들웨어를 사용하여 Laravel 5에서 HTTPS를 강제하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-12 13:39:10
원래의
910명이 탐색했습니다.

How to Force HTTPS in Laravel 5 Using Middleware?

미들웨어를 사용한 Laravel 5 HTTPS 리디렉션

Laravel 5에서는 미들웨어 클래스를 사용하여 애플리케이션에 HTTPS를 적용할 수 있습니다. 이를 달성하는 방법은 다음과 같습니다.

미들웨어 클래스:

namespace MyApp\Http\Middleware;

use Closure;

class HttpsProtocol
{

    public function handle($request, Closure $next)
    {
        if (!$request->secure()) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
    }
}
로그인 후 복사

미들웨어 적용:

다음 단계는 들어오는 모든 요청에 ​​이 미들웨어를 적용합니다. Kernel.php 파일에서 $middleware 배열에 추가합니다:

protected $middleware = [
    // Existing middleware...

    // Custom middleware
    'MyApp\Http\Middleware\HttpsProtocol',
];
로그인 후 복사

생산 환경 검증:

제공된 미들웨어는 모든 HTTP 요청을 HTTPS로 리디렉션합니다. 그러나 이 동작을 프로덕션 환경으로만 제한할 수도 있습니다. 애플리케이션 환경을 확인하면 됩니다.

if (!$request->secure() && App::environment() === 'production') {
    return redirect()->secure($request->getRequestUri());
}
로그인 후 복사

Cloudflare 고려 사항:

Cloudflare를 사용하는 경우 Cloudflare가 전달하기 때문에 리디렉션 루프가 발생할 수 있습니다. HTTP를 사용하여 요청합니다. 이 문제를 해결하려면 미들웨어에 다음 줄을 추가하세요.

$request->setTrustedProxies([$request->getClientIp()]);
로그인 후 복사

Web Group (Laravel v5.3 ):

$middleware에 추가하는 대신 배열을 사용하려면 Kernel.php의 웹 그룹에 추가할 수 있습니다.

protected $middlewareGroups = [
    'web' => [
        // ...

        // Custom middleware
        'MyApp\Http\Middleware\HttpsProtocol',
    ],
];
로그인 후 복사

웹 그룹은 기본적으로 모든 경로에 적용됩니다.

추가 참고 사항:

  • URL::forceScheme('https'); 리디렉션하지 않고 렌더링된 링크의 구성표만 수정합니다.
  • 애플리케이션의 호스팅 설정에 따라 환경 확인을 조정합니다.
  • 신뢰할 수 있는 프록시가 Cloudflare에 대해 올바르게 설정되었는지 확인하세요.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿