Общие функции сайта
При входе на сайт, посетителю предлагается согласится с выбранным городом или указать самому. Город определяется автоматически по ip адресу пользователя, данные по ip пользователя берутся из базы адресов Яндекса. После выбора города, посетителя больше не спрашивают, даже после перезагрузки страницы. Данные по адресу хранятся до момента пока пользователь не почистит историю в браузере (временные файлы) или пока не закончится сессия (время хранения настраивается на сайте и как правило не превышает 12 часов).
Также возможно доработать функционал, а именно хранить выбранный город в настройках авторизованного (зарегистрированного) пользователя.
Еще можно создать сеть поддоменов, при выборе города - программа переадресует на соответствующий поддомен. У сайтов на поддоменах возможно сделать смену телефонов и адреса, изменение города в мета-тегах (title, description), смена текстов в интересующих разделах, выбрать какие категории показывать.