Proxy inverso Apache | Reindirizzamento della directory con caratteri jolly (.htaccess)

Jul 24 2017

Come sarebbe possibile avere un proxy di directory con caratteri jolly?

Ho ottenuto le basi ma il problema è che fornisce la directory in cui mi trovo, il mio file 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]

Durante la visita domain.tld/image.png, funziona perfettamente.

Durante la visita domain.tld/test/image.png, è 404 dovuto al fatto che include / test / nell'URL proxy, come dovrei risolverlo?

Modifica: quello che sto cercando di ottenere è non includere l'URL precedente e farlo comportare come se vi si accedesse tramite domain.tld/image.pnginvece didomain.tld/test/image.png

Risposte

MrWhite Jul 24 2017 at 13:05
# One Directory
RewriteRule ^([^/]+)/(.*)\. ......

Rimuovi semplicemente le parentesi graffe attorno al primo modello acquisito (poiché non è necessario acquisire questo gruppo):

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

Nota che questo gestisce solo un segmento di sottodirectory (che presumo sia l'intenzione).

In alternativa, potresti aver cambiato i riferimenti $1.$2$3a ritroso da a .$2.$3$4

AGGIORNAMENTO # 1: Oltre a quanto sopra, sarà necessario modificare il blocco "Nessuna directory" precedente in modo che non corrisponda effettivamente a nessuna directory. Allo stato attuale, corrisponde all'intero percorso dell'URL (cioè le directory) e quindi la seconda regola non viene nemmeno elaborata ...

# No directory
RewriteRule ^(.*)\.(jpg|gif| ......

Cambia in:

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

AGGIORNAMENTO # 2: per gestire (e ignorare) qualsiasi livello di sottodirectory, rimuovi semplicemente l'inizio dell'ancora di stringa (cioè ^) dal RewriteRule modello precedente . Per esempio:

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