やりたいこと
LaravelデフォルトのレスポンスヘッダのCache-Controlには no-cache private
がセットされています。
これに no-store
を追加し、↓の状態にしたい。
no-cache no-store private
追加方法
Responseのheaderを変更するためのミドルウェアSetResponseHeader
を追加し、Cache-Controlをセットしました。
$ php artisan make:middleware SetResponseHeader
app/Http/Middleware/SetResponseHeader.php
<?php
namespace App\Http\Middleware;
use Closure;
class SetResponseHeader
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
if (!$response->isRedirect()) {
$response->header('Cache-Control', 'no-cache, no-store, private');
}
return $response;
}
}
あとはKernel.phpに追加したミドルウェアを登録すればOKです。
app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\SetResponseHeader::class, //追加
],
];