Proxy inverse Apache | Réacheminement du répertoire générique (.htaccess)
Comment serait-il possible d'avoir un proxy d'annuaire générique?
J'ai obtenu les bases mais le problème est que cela donne le répertoire dans lequel je suis, mon fichier 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]
Lors de la visite domain.tld/image.png, cela fonctionne très bien.
Lors de la visite domain.tld/test/image.png, cela est dû au fait qu'il inclut / test / dans l'URL proxy, comment pourrais-je résoudre ce problème?
Edit: Ce que j'essaie de réaliser, c'est de ne pas inclure l'URL précédente et de la faire agir comme si elle était accédée via domain.tld/image.pngau lieu dedomain.tld/test/image.png
Réponses
# One Directory RewriteRule ^([^/]+)/(.*)\. ......
Supprimez simplement les accolades autour du premier motif capturé (car vous n'avez pas besoin de capturer ce groupe):
RewriteRule ^[^/]+/(.*)\. ......
Notez que cela ne gère qu'un seul segment de sous-répertoire (ce qui, je suppose, est l'intention).
Sinon, vous pourriez avoir changé les références arrière de $1.$2$3à .$2.$3$4
MISE À JOUR # 1: En plus de ce qui précède, vous devrez changer le bloc "Aucun répertoire" précédent pour qu'il ne corresponde en effet à aucun répertoire. En l'état, il correspond à l'ensemble du chemin de l'URL (c'est-à-dire les répertoires) et donc la deuxième règle n'est même pas en cours de traitement ...
# No directory RewriteRule ^(.*)\.(jpg|gif| ......
Changer pour:
RewriteRule ^([^/]+)\.(jpg|gif| ......
MISE À JOUR # 2: Pour gérer (et ignorer) n'importe quel niveau de sous-répertoire, supprimez simplement le début de l'ancre de chaîne (c'est-à-dire ^) du RewriteRule modèle ci-dessus . Par exemple:
RewriteRule ([^/]+)\.(jpg|gif| ......