From c49f9ad7e0868ed7589a35520caebf5c86c78af4 Mon Sep 17 00:00:00 2001 From: Petro1990 Date: Sat, 14 Mar 2026 23:02:21 +0300 Subject: [PATCH] =?UTF-8?q?rproxy=20v1.8.6:=20=D1=8D=D0=BA=D1=81=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B8=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20sub=5Ffilter=20=D0=B4=D0=BB=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D0=B5=D0=B9=20=D0=B2=20=D0=BF=D0=BE=D0=B4=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D1=8F=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rproxy | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/rproxy b/rproxy index a0f4c72..f4a0547 100644 --- a/rproxy +++ b/rproxy @@ -3,7 +3,7 @@ # Публикация локальных сервисов через SSH-туннели + nginx на VPS # https://github.com/l-ptrol/rProxy -VERSION="1.8.4" +VERSION="1.8.6" export PATH="/opt/bin:/opt/sbin:$PATH" CONF_DIR="/opt/etc/rproxy" CONF_FILE="$CONF_DIR/rproxy.conf" @@ -497,6 +497,11 @@ do_add_interactive() { path="${REPLY:-/}" [ "${path#/}" = "$path" ] && path="/$path" + if [ "$path" != "/" ]; then + printf " ${YELLOW}ℹ СОВЕТ: Сложные интерфейсы (как у роутеров) могут плохо работать в подпутях.${NC}\n" + printf " ${YELLOW} Для стабильного UI лучше использовать поддомен (напр. app.domain.com) с путем /${NC}\n" + fi + if [ "$use_ssl" = "yes" ] && [ -z "$CERTBOT_EMAIL" ]; then prompt "Введите Email для Certbot: " CERTBOT_EMAIL="$REPLY" @@ -522,6 +527,11 @@ do_add_interactive() { [ "${path#/}" = "$path" ] && path="/$path" fi + if [ "$path" != "/" ]; then + printf " ${YELLOW}ℹ СОВЕТ: Сложные интерфейсы (как у роутеров) могут плохо работать в подпутях.${NC}\n" + printf " ${YELLOW} Для стабильного UI лучше использовать поддомен (напр. app.domain.com) с путем /${NC}\n" + fi + # Если VPS не определен автоматически — выбираем вручную if [ -z "$vps_id" ]; then select_vps_interactive @@ -1246,6 +1256,17 @@ generate_nginx_conf() { proxy_cookie_path / "$path"; # Редиректы: если приложение шлет Location: /login, Nginx заменит на Location: $path/login proxy_redirect / "$path"; + + # Экспериментальная замена ссылок в HTML/JS для работы в подпутях (v1.8.6) + if [ "$path" != "/" ]; then + # Убираем сжатие от бэкенда, чтобы Nginx мог видеть текст + proxy_set_header Accept-Encoding ""; + sub_filter_once off; + sub_filter_types text/html text/css application/javascript application/json; + # Заменяем ссылки начинающиеся с / на /путь/ + sub_filter '="/' '="$path/'; + sub_filter '=\"/' '=\"$path/'; + fi } NGINXEOF }