Такое происходит т.к. URL - не есть путь к файлу. А лишь "строка", которая сообщается твоему веб серверу при соединении. Далее уже веб сервер делает решение что делать дальше.
Например в apache, используя .htaccess можно все это дело координально менять.
Так повелось что по стандарту и простоте доступ идёт как к файлам к корню веб директории, но это легко меняется. И в современных вебсайтах и движках обычно так и делают.
Это называется Pretty URL:
http://www.desiquintans.com/cleanurls