Обратный прокси Apache | Перенаправление каталога с подстановочными знаками (.htaccess)

Как можно использовать прокси каталога с подстановочными знаками?

Я получил основы, но проблема в том, что он выдает каталог, в котором я нахожусь, мой файл htaccess:

RewriteEngine on

RewriteCond %{REQUEST_URI}  !(u|api|fonts|images|css|js) [NC]

# No directory

RewriteRule ^(.*)\.(jpg|gif|png|txt|mp4|mp3|json|js|zip|bmp|tiff|webp|webm|raw|psd|jpeg|jpe|wav)(.*) http://127.0.0.1:9000/owoapi/$1.$2$3?%{QUERY_STRING} [proxy]

# One Directory
RewriteRule ^([^/]+)/(.*)\.
(jpg|gif|png|txt|mp4|mp3|json|js|zip|bmp|tiff|webp|webm|raw|psd|jpeg|jpe|wav)
(.*) http://127.0.0.1:9000/owoapi/$1.$2$3?%{QUERY_STRING} [proxy]

При посещении domain.tld / image.png он работает нормально.

При посещении domain.tld / test / image.png он 404 из-за того, что он включает / test / в проксируемом URL-адресе, как мне это исправить?

Изменить: Я пытаюсь добиться, чтобы не включать предыдущий URL-адрес и заставить его действовать так, как будто он доступно через domain.tld / image.png вместо domain.tld / test / image.png

1
задан 24 July 2017 в 16:01
1 ответ
 # One Directory
RewriteRule ^ ([^ /] +) / (. *) \.  ......
 

Просто удалите фигурные скобки вокруг первого захваченного шаблона (так как вам не нужно захватывать эту группу):

RewriteRule ^[^/]+/(.*)\. ......

Обратите внимание, что это обрабатывает только один сегмент подкаталога (что, как я предполагаю, является намерением).

В качестве альтернативы, вы могли изменить обратные ссылки с $ 1. $ 2 $ 3 на $ 2. $ 3 $ 4 .

ОБНОВЛЕНИЕ №1: В дополнение к вышесказанному вам нужно будет изменить предыдущий блок «Нет каталога», так что он действительно соответствует нет каталог. В его нынешнем виде он соответствует всему URL-пути (т.е. каталогам), поэтому второе правило даже не обрабатывается ...

 # Нет каталога
RewriteRule ^ (. *) \. (Jpg | gif | ......
 

Замените на:

RewriteRule ^([^/]+)\.(jpg|gif| ......

ОБНОВЛЕНИЕ №2: Чтобы обрабатывать (и игнорировать) любой уровень подкаталога, просто удалите начало привязки строки (например, ^ ) из выше ] RewriteRule шаблон . Например:

RewriteRule ([^/]+)\.(jpg|gif| ......
0
ответ дан 4 December 2019 в 04:48

Теги

Похожие вопросы