web-dev-qa-db-fra.com

Réécriture des URL d'image dans nginx à partir d'une URL raccourcie vers un répertoire spécifique

J'utilise une application de diffusion d'images sur nginx/1.4.6 (Ubuntu), mais elle a été conçue pour Apache2. Les images sont téléchargées dans le répertoire "/ imageshare/images/extension /" où le nom du fichier est généré de manière aléatoire, mais l'URL générée par l'application est raccourcie et se trouve dans le domaine domain.tld/image/nom du fichier.

Le responsable de l'application donne des conseils sur .htaccess pour Apache2, mais indique qu'il ne peut fournir aucune aide pour Nginx. Que puis-je mettre dans mon fichier de configuration Nginx pour rediriger les images vers une autre URL sur le même domaine sans changer l'emplacement de ces fichiers?

3
daily001

Pour diriger l'URL domain.tld/image/filename vers le chemin local /imageshare/images/extension/filename, utilisez la directive alias (voir this pour plus de détails):

location /image/ {
    alias /path/to/imageshare/images/extension/;
}

Si vous voulez vraiment réécrire l'URL sur une autre URL, utilisez:

location /image/ {
    rewrite ^/image(.*)$ /imageshare/images/extension$1 last;
}

Voir this pour plus de détails. Le modificateur last fait que la réécriture soit interne , ce qui signifie que le client ne la voit pas. Utilisez redirect ou permanent pour rendre la redirection visible pour le client.

4
Richard Smith