Rewrite url via Nginx
Résolupcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment puis je m'y prendre pour faire la réécriture d'url suivante :
https://dkxwm.site.net/1736/1/10562/0eb14-c61-497-a10-537d965e3.jpg
en :
https://www.monsite.fr/imgfinality/1736/1/10562/0eb14-c61-497-a10-537d965e3.jpg
- Sachant que le début du remplacement est statique :
https://dkxwm.site.net/
en :
https://www.monsite.fr/imgfinality/
Sachant que le reste de l'URL est dynamique :
1736/1/10562/0eb14-c61-497-a10-537d965e3.jpg
J'aurais tendance à faire un truc de ce genre mais je suis pas certain.
location ~ /imgfinality/ { rewrite ^/imgfinality/(.*) /$1 break; proxy_pass https://dkxwm.site.net; proxy_set_header Host $proxy_host; }
Merci d'avance.
4 réponses
Bonjour,
Ce que tu as commencé à écrire laisse entendre que ton serveur nginx fait office de reverse proxy. Est-ce normal ?
Ce n'est pas ma spécialité (je n'utilise pas nginx) mais :
- Si on redirige tout dkxwm.site.net, voir cette page :
server { listen 80; listen 443 ssl; server_name dkxwm.site.net; return 301 $scheme://www.monsite.fr/imgfinality/$request_uri; }
- Si on redirige uniquement une location vers un autre serveur, voir cette page :
server{ listen 80; listen 443 ssl; server_name dkxwm.site.net; location ~ .jpg { rewrite ^/(.*)$ https://www.mon-sites.com/imgfinality/$1 redirect; } }
Bonne chance
Bonjour,
Voici ce que dit la documentation Nginx :
If the proxy_pass
directive is specified with a URI, then when a request is passed to the server, the part of a normalized request URI matching the location is replaced by a URI specified in the directive:
location /name/ { proxy_pass http://127.0.0.1/remote/; }
Source : https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Dans ton cas, il suffit d'ajouter un « / » à la fin (trailing slash) afin que la valeur soit considérée comme une URL et que la substitution se fasse. Ce qui rend ta règle de réécriture inutile.