Как работают такие URL?
Расширение - ложь! Неужели ты думаешь, что все сайты, у которых есть ссылки вида /bla/bla/bla.html действительно на сервере имеют папку bla внутри папки bla с файлом bla.html? URL - это всего лишь набор буковок, которые отдаются серверу. Что с этими буковками дальше делать - решает этот сервер или перекладывает ответственность на приложение. Ну и да - как было сказано остальными - сервер может рассказать тебе о типе файла, который он отдает, в заголовке Content-Type (НЕ в расширении). В вебе нет расширений, они есть только у тебя на компьютере.
Это можно сделать либо HTTP заголовком "Content-Disposition: attachment;filename=" либо редиректом на документ.