feat(mera/b2c): публичный периметр МЕРЫ — свой API, отдельный экран оценки, короткие адреса #2913
1 changed files with 18 additions and 3 deletions
21
Caddyfile
21
Caddyfile
|
|
@ -304,14 +304,29 @@ meraocenka.ru {
|
|||
# параметров не принимает (форма проверки шлёт данные телом POST, а
|
||||
# черновик с лэндинга едет через sessionStorage — специально чтобы адрес
|
||||
# квартиры не попал в access-лог).
|
||||
# `redir * <куда>`, а НЕ `redir <куда>`. Первый аргумент директивы, если он
|
||||
# начинается со слэша, Caddy разбирает как inline path-matcher — то есть
|
||||
# `redir / permanent` означает «для пути / редиректить на permanent», а не
|
||||
# «редиректить на /». Проверено на живом Caddy: без `*` длинные адреса
|
||||
# отдавали пустой 200 (матчер не совпадал, директива не срабатывала, тело
|
||||
# пустое) — хуже, чем 404, потому что выглядит как рабочая пустая страница.
|
||||
@meraLongRoot path /trade-in/mera-public /trade-in/mera-public/
|
||||
handle @meraLongRoot {
|
||||
redir / permanent
|
||||
redir * / permanent
|
||||
}
|
||||
|
||||
@meraLongSub path_regexp meralong ^/trade-in/mera-public/(.+)$
|
||||
# `([^/].*)`, а не `(.+)` — страховка от протокол-относительной цели.
|
||||
# Захват, начинающийся со слэша, дал бы `redir` цель вида `//evil.example`,
|
||||
# которую браузер резолвит как ЧУЖОЙ ХОСТ (открытый редирект с нашего
|
||||
# домена). Проверено на живом Caddy: сегодня это недостижимо и без
|
||||
# ограничения — Caddy нормализует путь ДО матчинга, схлопывая повторные
|
||||
# слэши, и `//evil.example` (как и `/%2Fevil.example`) уже приезжает сюда
|
||||
# одним слэшем, то есть редирект остаётся на нашем хосте. Ограничение
|
||||
# оставлено намеренно: оно стоит ноль, а полагаться на нормализацию как на
|
||||
# единственный барьер для дыры такого класса не хочется.
|
||||
@meraLongSub path_regexp meralong ^/trade-in/mera-public/([^/].*)$
|
||||
handle @meraLongSub {
|
||||
redir /{re.meralong.1} permanent
|
||||
redir * /{re.meralong.1} permanent
|
||||
}
|
||||
|
||||
# Next.js уже эмитит ссылки на статику с /trade-in-префиксом (тот же
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue