2016-09-30 36 views

回答

1
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off"){ 
    $redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
    header('HTTP/1.1 301 Moved Permanently'); 
    header('Location: ' . $redirect); 
    exit(); 
} 

對於Laravel 5.2,你可以這樣做:

創建新的中間件(您可以通過命令php artisan make:middleware nameMiddleware,如做php artisan make:middleware forceSSL

在這個中間件(/應用程序/ HTTP /中間件/ nameMiddleware。 .PHP)把這個:

<?php 

namespace App\Http\Middleware; 

use Closure; 

class nameMiddleware { 

    public function handle($request, Closure $next) { 

     if (!$request->secure() && env('APP_ENV') === 'prod') { 
      return redirect()->secure($request->getRequestUri()); 
     } 

     return $next($request); 
    } 

} 

註冊您的中間件/app/http/Kernel.php

$middlewares = [ 
... 
'\app\Http\Middleware\nameMiddleware' 
]; 

添加中間件到$routeMiddleware數組。

在此之後,你可以直接添加到中間件Route::get('/', ['middleware' => 'nameMiddleware'] ...);

+0

感謝兄弟,你的代碼是在覈心運行PHP,但我需要在laravel運行它不工作? –

+0

您可以創建一個過濾器: '路線::過濾器( 'f.ssl',函數(){ 如果 (支持::安全()){ 回報 重定向::安全(支持::路徑! ()); } });' – mabezdek

+0

如何創建過濾器?你可以詳細說明 –

相關問題