RewriteRule mp3 para php

1

Eu quero reescrever todos os arquivos .mp3 para um arquivo php. E eu não quero passar no caminho

link link

não deve fazer diferença.

Eu inventei:

RewriteRule ^(.*)\.mp3$ /files/read/?file=$1.mp3 [QSA]

O que estou perdendo? talvez algum regexp antes do (. *) mas por que ele não pega o padrão mp3 e redireciona para /files/read/?file=feb.mp3?

Isso nem parece pegar os arquivos mp3:

applying pattern '^(.*)\.mp3$' to uri 'feb.mp3'

Não pára por aí, passa pela outra condição e cai em:

applying pattern '^.*$' to uri 'feb.mp3'
pass through /htdocs/project/project-web/feb.mp3

Muito obrigado se isso puder ser resolvido.

este é o meu completo .htaccess

Desenvolvimento de SetEnv APPLICATION_ENV

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)\.mp3$ files/read/?file=$1.mp3 [QSA]
RewriteRule ^.*$ index.php [NC,L]

Isso parece funcionar, no entanto, ele redireciona isso.

 RewriteRule ^(.+).mp3$ http://education.localhost/files/read/?file=$1.mp3 [NC,L]

Pode ser algo que quando essa regra de regravação se aplica, isso não acontece:

RewriteRule ^.*$ index.php [NC,L]

Então, arquivos / read /? file = $ 1.mp3 isso depende dessa função para index.php, alguma maneira de fazer isso funcionar?

    
por Oldek 26.02.2012 / 21:38

1 resposta

1

Faça o processo de reescrita parar quando um MP3 for encontrado, em vez de enviar o pedido para index.php , use o sinalizador [L] .

E para não se importar com o que o caminho do diretório está precedendo o nome do arquivo MP3, você vai querer excluir qualquer coisa antes do último caractere de barra.

Então, tente isto:

RewriteRule ([^/]*)\.mp3$ files/read/?file=$1.mp3 [QSA,L]

Ou você realmente quis redirecionar o cliente e ainda permitir que ele atingisse index.php na solicitação subsequente? Eu estou supondo que sim, já que é um parâmetro de consulta ... tente isto:

RewriteRule ([^/]*)\.mp3$ files/read/?file=$1.mp3 [QSA,L,R=301]
    
por 26.02.2012 / 23:08