ホームページ > バックエンド開発 > PHPチュートリアル > LaravelアプリケーションでHTTPSを強制する方法?

LaravelアプリケーションでHTTPSを強制する方法?

Linda Hamilton
リリース: 2024-12-11 15:57:14
オリジナル
994 人が閲覧しました

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'       
];
ログイン後にコピー

デフォルトでは、Web ミドルウェア グループが適用されます。すべてのルートに接続されるため、これ以上の設定は必要ありません。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート