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