2017-01-25 13 views
0

特定のページをhttpsにリダイレクトしたい場合、残りのページは通常のhttpのままです。laravelの特定のページのみhttpsでリダイレクトする方法

私は支払いページのためだけにこれをしたいと思います。正常な支払いサイトが通常のhttpで実行されます。

ですので、これを手伝ってください。

私はすでにこれを試しています。

Route::resource('paynow', ['uses' => 'Account\PaymentController', 'https' => true]); 

しかし、これは私にとっては役に立ちません。

+0

であなたのルートをラップドメイン上のSSL証明書は、なぜ1つのページしか安全ではないのですか? SSL証明書を入手するのは簡単ですが、それを持っていないという言い訳はありません! –

+0

@RobFonsecaはい、クライアントの要件です。 –

+0

私は個人的にクライアントに適切な方法を知らせますが、それはあなた次第です。サーバーは負荷分散された環境にありますか?私が答える前に、それはあなたがこれを行う方法を変えるだろう –

答えて

2

app \ http \ middlewareにカスタムミドルウェアを作成して、リクエストをインターセプトしてそれらのルートにヒットすると、私はそれについて説明します。

<?php 

namespace App\Http\Middleware; 

use Closure; 

class SecurePayment 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if (!$request->secure()) { 
      return redirect()->secure($request->getRequestUri()); 
     } 

     return $next($request); 
    } 
} 

次にルートミドルウェア群ではアプリ/ HTTP/kernel.php

/** 
    * The application's route middleware. 
    * 
    * These middleware may be assigned to groups or used individually. 
    * 
    * @var array 
    */ 
    protected $routeMiddleware = [ 
     ..... 

     'secure-payment' => \App\Http\Middleware\SecurePayment::class, 
    ]; 

そして最後にそれを追加し、あなたが既に持っている場合はグループ

Route::group(['middleware' => ['secure-payment']], function() { 
    Route::resource('paynow', ['uses' => 'Account\PaymentController']); 
}): 
+0

Arrayに文字列変換エラーが発生します。 –

+0

エラーがどのファイルに記録されていますか? –

+0

ちょうど私がルートグループの行の終わりの引用を見逃していたことに気づいた。ちょうどそれを上に固定 –

関連する問題