ホームページ > バックエンド開発 > 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 では、Middleware クラスを使用してアプリケーションに 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を使用したリクエスト。これを修正するには、$middleware に追加する代わりに、次の行をミドルウェアに追加します:

$request->setTrustedProxies([$request->getClientIp()]);
ログイン後にコピー

Web Group (Laravel v5.3 ):

配列を Kernel.php の Web グループに追加できます。

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

        // Custom middleware
        'MyApp\Http\Middleware\HttpsProtocol',
    ],
];
ログイン後にコピー

覚えておいてください。 Web グループはデフォルトですべてのルートに適用されます。

追加メモ:

  • URL::forceScheme('https');リダイレクトは行わず、レンダリングされたリンク内のスキームのみを変更します。
  • アプリケーションのホスティング設定に従って環境チェックを調整します。
  • 信頼できるプロキシが Cloudflare に正しく設定されていることを確認してください。

以上がミドルウェアを使用してLaravel 5でHTTPSを強制する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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