<?php
namespace App\Http\Middleware;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Str;
use Silber\PageCache\Middleware\CacheResponse as BaseCacheResponse;
class CacheResponse extends BaseCacheResponse
{
protected function shouldCache(Request $request, Response $response)
{
// Исключаем сохранение кэша если ссылка содержит /admin
} elseif (Str::contains(request()->getRequestUri(), '/admin')) {
return false;
// Исключаем сохранение кэша если ссылка содержит предварительный просмотр страницы в админке ?preview=true
} elseif (Str::contains(request()->getRequestUri(), '?preview=true')) {
return false;
// Исключаем сохранение кэша если ссылка содержит знак вопроса
} elseif (Str::contains(request()->getRequestUri(), '?')) {
return false;
} else {
return $request->isMethod('GET') && $response->getStatusCode() == 200;
}
return parent::shouldCache($request, $response);
}
}
location = / {
try_files /page-cache/pc__index__pc.html /index.php$is_args$query_string;
}
location / {
try_files $uri $uri/ /page-cache/$uri.html /page-cache/$uri.json /page-cache/$uri.xml /index.php$is_args$query_string;
}
'replacers' => [\Spatie\ResponseCache\Replacers\CsrfTokenReplacer::class,],
'backcolor': function (str) { //Только один цвет #adb3cd или два цвета одновременно #d70f75,#00ced4
var regExp = new RegExp('^#[a-f0-9]{6}(?:,\s*#[a-f0-9]{6})?$');
return regExp.test(str) || !str;
}
#[a-f0-9]{6}(?:,\s*#[a-f0-9]{6})+?\b
Эти страницы существуют и записываются в кэш с кодом 200:
Если открыть ссылку в браузере
https://mysite.com/ru?khl-service=
, то сервер отдает страницу из кэшаhttps://mysite.com/ru
.При этом ссылка в строке браузера всё та же
https://mysite.com/ru?khl-service=
.