0
我想在不使用laravel 5.2中的.htaccess文件的情況下將HTTP流量重定向到HTTPS?我如何做到這一點,任何解決方案將不勝感激。如何在不使用laravel 5.2中的.htaccess文件的情況下將HTTP流量重定向到HTTPS
我想在不使用laravel 5.2中的.htaccess文件的情況下將HTTP流量重定向到HTTPS?我如何做到這一點,任何解決方案將不勝感激。如何在不使用laravel 5.2中的.htaccess文件的情況下將HTTP流量重定向到HTTPS
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'] ...);
感謝兄弟,你的代碼是在覈心運行PHP,但我需要在laravel運行它不工作? –
您可以創建一個過濾器: '路線::過濾器( 'f.ssl',函數(){ 如果 (支持::安全()){ 回報 重定向::安全(支持::路徑! ()); } });' – mabezdek
如何創建過濾器?你可以詳細說明 –