Как можно использовать прокси каталога с подстановочными знаками?
Я получил основы, но проблема в том, что он выдает каталог, в котором я нахожусь, мой файл 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
# One Directory RewriteRule ^ ([^ /] +) / (. *) \. ......
Просто удалите фигурные скобки вокруг первого захваченного шаблона (так как вам не нужно захватывать эту группу):
RewriteRule ^[^/]+/(.*)\. ......
Обратите внимание, что это обрабатывает только один сегмент подкаталога (что, как я предполагаю, является намерением).
В качестве альтернативы, вы могли изменить обратные ссылки с $ 1. $ 2 $ 3
на $ 2. $ 3 $ 4
.
ОБНОВЛЕНИЕ №1: В дополнение к вышесказанному вам нужно будет изменить предыдущий блок «Нет каталога», так что он действительно соответствует нет каталог. В его нынешнем виде он соответствует всему URL-пути (т.е. каталогам), поэтому второе правило даже не обрабатывается ...
# Нет каталога RewriteRule ^ (. *) \. (Jpg | gif | ......
Замените на:
RewriteRule ^([^/]+)\.(jpg|gif| ......
ОБНОВЛЕНИЕ №2: Чтобы обрабатывать (и игнорировать) любой уровень подкаталога, просто удалите начало привязки строки (например, ^
) из выше ] RewriteRule
шаблон . Например:
RewriteRule ([^/]+)\.(jpg|gif| ......