Proxy reverso Apache | Redirecionamento de diretório curinga (.htaccess)
Como seria possível ter um proxy de diretório curinga?
Eu entendi o básico, mas o problema é que ele fornece o diretório em que estou, meu arquivo 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]
Ao visitar domain.tld/image.png, funciona muito bem.
Ao visitar domain.tld/test/image.png, é 404 devido ao fato de incluir / test / na URL com proxy, como eu faria para corrigir isso?
Edit: O que estou tentando alcançar é não incluir o URL anterior e fazê-lo agir como se estivesse sendo acessado por meio em domain.tld/image.pngvez dedomain.tld/test/image.png
Respostas
# One Directory RewriteRule ^([^/]+)/(.*)\. ......
Simplesmente remova as chaves em torno do primeiro padrão capturado (já que você não precisa capturar este grupo):
RewriteRule ^[^/]+/(.*)\. ......
Observe que isso lida apenas com um segmento de subdiretório (que presumo ser a intenção).
Como alternativa, você poderia ter alterado as referências anteriores de $1.$2$3para .$2.$3$4
ATUALIZAÇÃO # 1: Além do acima, você precisará alterar o bloco "Sem diretório" anterior para que ele realmente não corresponda a nenhum diretório. Do jeito que está, está correspondendo a todo o caminho da URL (ou seja, diretórios) e, portanto, a segunda regra nem mesmo está sendo processada ...
# No directory RewriteRule ^(.*)\.(jpg|gif| ......
Mudar para:
RewriteRule ^([^/]+)\.(jpg|gif| ......
ATUALIZAÇÃO # 2: Para manipular (e ignorar) qualquer nível de subdiretório, simplesmente remova o início da âncora de string (ou seja. ^) Do RewriteRule padrão acima . Por exemplo:
RewriteRule ([^/]+)\.(jpg|gif| ......