В настоящее время я пытаюсь переписать URL-адрес на основе расширений и поддоменов, но мое обновление не работает, поэтому я попытаюсь объяснить свою процедуру:
Я хотел бы переписать этот тип URL
https://mydomain.tld/image.jpg
на
https://jpg.mydomain.tld/image
, поэтому я обновляю свой haproxy.cfg и добавляю в свой интерфейс следующие правила:
frontend web
bind *:80
acl p_ext_jpg path_end -i .jpg
acl p_ext_png path_end -i .png
acl mydomain hdr(host) -i mydomain.tld
reqrep ^([^\ :]*)\ /(*).(jpg|png) \1\ /\2
use_backend backend_static if p_ext_jpg p_ext_png mydomain
default_backend backend_web
Мое текущее правило nginx, которое работает:
rewrite "^/([0-9]+).(jpg|png)$" $scheme://$2.mydomain.tld/$1;
Мои текущие проблемы:
Я хочу только переписать url и перенаправить на мой сервер, а не на перенаправление.
Спасибо за вашу помощь и извините за мой английский.
Ваш бэкэнд никогда не используется, потому что ваше «если» является неявным И. Используйте «или»:
use_backend backend_static if mydomain { p_ext_jpg or p_ext_png }
Итак, вы можете переписать хост:
reqirep ^Host:\ mydomain.tld Host:\ jpg.mydomain.tld if mydomain p_ext_jpg
reqirep ^Host:\ mydomain.tld Host:\ png.mydomain.tld if mydomain p_ext_png
«http-запрос» - это «новый» способ решить эту проблему ...