htaccess renommer mp3 à la volée

0

Je veux que "-xxx" soit ajouté à la fin du nom de fichier lorsqu'un utilisateur les télécharge sur tous les fichiers mp3 résidant sur mon serveur. Exemple:

fichier sur le serveur: fichier.mp3

lorsque l'utilisateur télécharge: fichier-xxx.mp3

J'ai googlé quelque chose qui est assez proche de ce que je veux:

https://forums.digitalpoint.com/threads/htaccess-rename-mp3.128317/

Comme je ne veux pas être limité à un dossier en particulier et que je souhaite que tous les fichiers .mp3 soient renommés à la volée, j'ai essayé ceci:

RewriteEngine on
RewriteBase /
RewriteRule ([^.]+)-by-domain\.mp3$ $1.mp3 [L]

mais pour une raison quelconque, je ne peux pas le faire fonctionner, les fichiers ne sont pas renommés.

Toute aide serait appréciée. Merci!

Pereyra
la source
Les RewriteRules ne "renomment" pas les fichiers, ils les modifient à la place afin de pouvoir retrouver le fichier en cours de traitement. Ainsi, le client n'accédera pas file.mp3, le client y aura accès file-xxx.mp3et RewriteRule autorisera simplement le fichier nommé file.mp3à être renvoyé sous le nom de fichier demandé.
NReilingh

Réponses:

0

Ce qui suit a fonctionné lorsque testé sur mon serveur

RewriteEngine on
RewriteBase /
RewriteRule ^ / (. *) - ([0-9] +). Mp3 /$1.mp3

Cela fonctionne comme suit - La RewriteRule est divisée en 4 parties,

  1. le préfixe incluant le chemin et la première partie du nom du fichier
  2. le "-"
  3. les numéros dans le fichier
  4. la fin du fichier (.mp3)

Le script ne prend que le préfixe du fichier d'origine - la partie ^ / (. *), Puis le reconstruit dans une nouvelle URL (le $ 1 contient la partie entre les crochets dans la partie ci-dessus).

Le ([0-9] +) détecte le numéro unique. Ainsi, si vous souhaitez faire quelque chose de plus sophistiqué plus tard, vous pouvez écrire (par exemple) un script PHP permettant à l'utilisateur de télécharger le fichier et consigner les informations le concernant. en modifiant la règle de réécriture en

RewriteRule ^ / (. *) - ([0-9] +). Mp3 /path/process.php?mp3=$1&userid=$ 2

(Bien entendu, vous devrez également écrire le script php, mais l'exemple ci-dessus montre la logique de la façon dont la règle de réécriture traite l'URL en plusieurs parties.)

Davidgo
la source