Я не знаю, как решается для apache, т.к. использую nginx. Вот для этого варианта примерно могу изобразить, для апача только чисто алгоритмически (что и описал).
Смысл в том, что при обращении на поддомен (домен 3 уровня) происходит редирект (либо 301 либо средствами веб-сервера, т.е., неявный) на нужный url, который обрабатывает этот же самый веб-сервер (виртуальный хост). И так повторить для каждого поддомена. В нектором смысле это что-то вроде алиаса, только не доменного, а получается алиас для поддомена в виде url. Правда, нужно ещё как-то ограничить при этом обработку только конкретного uri конкретным веб-сервером (виртуальным хостом). Частичное ограничение в этом случае уже есть, т.к. каждый поддомен обрабатывает свой веб-сервер со своим ip-адресом. А вот склеить это всё в виде site/gorod1/2/3 (уже после того, как поисковики привыкнут, что поддомены редиректятся на определённый url)... Разве что создать ещё один виртуальный хост, натравить его обрабатывать данные адреса (и убрать обработку с имеющихся веб-серверов) и при обращении по адресу делать перенаправление на конкретный ip-адрес веб-сервера, который и должен откликаться по этому адресу. Т.е., надо использовать тот факт, что поддомены могут обрабатываться разными веб-серверами с разными адресами в Сети.
Другими словами, без редиректа (положения контента по-новому определённому [заданному] адресу) на начальном этапе вам никак не обойтись, иначе вы просто не получите то, ради чего всё это затевается.