Merhaba,
Bu güzel forumu hep soru sormak için kullanır olduk. Birazda bir şey paylaşayım dedim. 🙂
Belki benzer sorun yaşayan arkadaşlar olursa faydalanabilirler...
Sitenize SSL sertifikası yüklediğinizde bildiğiniz üzere .env ayarlarınızda APP_URL'i https:// olarak girdiğinizde bütün linkler o şekilde oluşuyor. Ancak bir kullanıcı http:// yazarak girmeye çalışırsa girebiliyor. Bunu engellemek ve otomatik https:// olarak yönlendirmek için global bir middleware kurabiliriz.
Örneğin;
php artisan make:middleware ForceSSL
<?php
namespace App\Http\Middleware;
use Closure;
class ForceSSL
{
public function handle($request, Closure $next)
{
if (!$request->secure() && config('app.env') === 'production') {
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
Ardından app/Http/Kernel.php içerisinde en üstte yer alan protected $middleware kısmına ekliyoruz:
\App\Http\Middleware\ForceSSL::class,
Artık projemizi yayına aldığımızda APP_ENV=local kısmını production yaptığımızda tüm http request'lerde bu middleware devreye girecek.
env() helper yerine config('app.env') kullanıyoruz çünkü config cache işlemi yapıyorsanız, env() helper ile çağırdığınız veriler NULL döneceği için çalışmıyor.