Расположение содержимого в порядке, но другое решение будет использовать PATH_INFO и получить файл следующим образом:
http://example.com/download.php/2793156879.zip
Ваш файл download.php будет похож на
// handle path_info
$filename=$_SERVER['PATH_INFO']; // gets "/2793156879.zip" as $filename
// do smtg w/ $filename...
// ...
// download
$len = filesize($filename);
header("Content-type: application/force-download");
header("Content-Length: $len");
readfile($filename);
Примечание: приложение / принудительная загрузка не существует, оно просто для принудительной загрузки с помощью каждого имеющегося браузера. (некоторые MSIE, похоже, имели проблемы с application / octet-stream)
Этот подход имеет преимущество работы со всеми браузерами: даже с очень старыми, не поддерживающими заголовок "Content-Disposition:".
У него есть небольшой недостаток: вы сами используете substr () код продукта из строки PATH_INFO