Rediriger une url lorsque le fichier n’existe pas sur le serveur peut être très utile si vous décider de changer touts vos formats de fichier de jpeg à png ou formats videos de flv à mp4 etc.
Par exemple vous décidé de convertir toutes les videos de votre serveur de flv à mp4, vous lancez un script de conversion à la volée et vous vous retrouver avec du flv et du mp4, vous pouvez modifier votre script php, python, etc pour tester si la video est en flv ou mp4 ou le faire directement au niveau de nginx qui a une fonction pour: try_files.
Dans votre config nginx server:
server { # Serve videos for web location ~ (.*)\.flv$ { try_files $uri $uri/ $1.mp4?$args; flv; # http flv module } location ~ (.*)\.mp4$ { mp4; # http mp4 module } } |
nginx va tester l’url de la video flv, si il ne la trouve pas il redirige l’url appelée mais avec l’extension mp4 cette fois-ci, $args est pour rajouter les éventuels arguments venant après la requête de l’url (ex: ?start=213424)
Cette astuce m’a permis entre autre de convertir à chaud 50 000 videos sur un serveur pendant que celui-ci était en prod tout en gardant les vidéos disponibles aux public et ce sans changer le script de mon site, juste en 3 lignes de conf nginx.
Quel genre de vidéos ?
Peu importe, flv, mpg, etc, le principe est le même
je parlais du contenu des vidéos.
Nos vidéos sont essentiellement des contenus éducatifs tournant autour de l’étude de la sociologie, de la biologie anatomique et de la mode vestimentaire.
He he, j’ai pensé à la même :D
En tout cas, merci pour la petite astuce ;)