htaccess renomear mp3 on the fly

0

Eu quero que todos os arquivos de mp3 que residem no meu servidor tenham "-xxx" adicionados no final do nome do arquivo quando um usuário os fizer download. Exemplo:

arquivo

no servidor: file.mp3

quando o usuário faz o download: file-xxx.mp3

Eu pesquisei algo muito próximo do que eu quero:

link

Como não quero me limitar a nenhuma pasta específica, e gostaria de ter todos os .mp3 renomeados na hora, tentei fazer isso:

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

mas, por algum motivo, não consigo fazer com que funcione, os arquivos não são renomeados.

Qualquer ajuda seria apreciada. Obrigado!

    
por pereyra 31.01.2013 / 16:19

1 resposta

0

O seguinte funcionou quando testado no meu servidor

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

Funciona da seguinte forma: o RewriteRule é dividido em 4 partes,

  1. o prefixo incluindo o caminho e a primeira parte do nome do arquivo
  2. o "-"
  3. os números no arquivo
  4. a parte final do arquivo (.mp3)

O script usa apenas o prefixo do arquivo original - a parte ^ / (. *) e, em seguida, reconstrói isso em um novo URL (o $ 1 contém a parte entre os colchetes na parte acima).

O ([0-9] +) detecta o número único, portanto, se você quiser fazer algo mais sofisticado mais tarde, poderá escrever (por exemplo) um script PHP que permita ao usuário baixar o arquivo e registrá-lo. informações sobre isso, alterando a regra de reescrita para

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

(Você precisaria escrever o script PHP, mas o exemplo acima mostra a lógica de como a regra de reescrita processa o URL em partes.)

    
por 01.02.2013 / 00:00

Tags