$new_uri {
default "";
~^404:/catalog/.*-640.html /catalog/product-slug-640.html;
}
try_files $uri $uri/ $uri/index.html =404;
if ($new_uri != "") {
rewrite ^(.*)$ $new_uri?$query_string permanent;
}
смысл в том, чтобы при 404 пытаться подсмотреть в map и попробовать выправить ситуацию. map отрабатывает только если нет if rewrite
add_header X-new-uri "newuri: $new_uri" always;
ты сам это придумал?))
оказывается можно делать map "$status:$request_uri" $new_uri { default "default:$status:$request_uri"; и оказывается там 000 как статус 😄
map $request_uri $new_uri { ~^/catalog/.*-640.html /catalog/product-slug-640.html; } try_files $uri $uri/ $uri/index.html =404; location = /404.html { if ($new_uri) { rewrite ^(.*)$ $new_uri?$query_string permanent; } } работает как надо
Обсуждают сегодня