ホームページ >バックエンド開発 >PHPチュートリアル >ミドルウェアを使用してLaravel 5でHTTPSリダイレクトを実装する方法?

ミドルウェアを使用してLaravel 5でHTTPSリダイレクトを実装する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-30 00:58:161011ブラウズ

How to Implement HTTPS Redirection in Laravel 5 Using Middleware?

Laravel 5: ミドルウェアを使用した HTTPS リダイレクトの実装

Laravel 5 では、ミドルウェアを使用してアプリケーションに HTTPS アクセスを強制できます。これを達成する方法についてのステップバイステップのガイドは次のとおりです。

1.ミドルウェア クラスの作成

まず、新しいミドルウェア クラスを作成します。

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);
    }
}

2.ミドルウェアをリクエストに適用

次に、ミドルウェアを $middleware 配列に追加して、app/Http/Kernel.php に登録します。

protected $middleware = [
    'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
    'Illuminate\Session\Middleware\StartSession',
    'Illuminate\View\Middleware\ShareErrorsFromSession',
    
    // Add your middleware here
    'MyApp\Http\Middleware\HttpsProtocol'
];

3. Cloudflare の設定

Cloudflare を使用している場合は、ミドルウェアに seguintes 行を追加します:

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

4. Laravel v5.7 での例外の処理

Laravel v5.7 では、URL::forceScheme('https') を使用した非 HTTPS リクエストのリダイレクトはリクエストをリダイレクトしなくなりました。適切なリダイレクトを確保するには、上記の方法を使用してください。

結論

このミドルウェアを実装すると、次のような状況でも、Laravel 5 アプリケーションに HTTPS アクセスを強制できます。特定のドメインのみが SSL を使用します。このアプローチは柔軟であり、特定の要件や環境に基づいてカスタマイズできます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。