Hi everyone,
I got a server which serves Data to a client ( in my case MP3s ). The MP3s are saved in a storage directory in the form Artist - Title.mp3
I'm using X-Accel-Redirect to serve the files from the storage dir to the user. This workes fine for most cases but fails for special chars like the question mark. I already tried encoding it - but the char always gets stripped like in Query strings. But since it's not an url I'm providing no stripping should take place. Here are my results:
[b]Example Filename is: /ext/53665/Katy Perry - Who Am I Living For?.mp3[/b]
[b]Plain:[/b]
open() "/ext/53665/Katy Perry - Who Am I Living For" failed (2: No such file or directory)
[b]urlencoded:[/b]
open() "/usr/local/nginx/html%2Fdl%2F53665%2FKaty+Perry+-+Who+Am+I+Living+For%253F.mp3" failed (2: No such file or directory)
[b]Rawurlencoded:[/b]
open() "/usr/local/nginx/html%2Fdl%2F53665%2FKaty%20Perry%20-%20Who%20Am%20I%20Living%20For%3F.mp3" failed (2: No such file or directory)
[b]Replaced ? with \?[/b]
open() "/ext/53665/Katy Perry - Who Am I Living For\" failed (2: No such file or directory)
[b]Escaped ? to %3F[/b]
open() "/ext/53665/Katy Perry - Who Am I Living For%3F.mp3" failed (2: No such file or directory)
It seems like X-Accel-Redirect treats the path as url instead of a realpath - or even doesn't apply any decoding on the subrequest.
best regards,
Volker