商周时代都城不止一个,有前后迁置的,也有同时存在的。当时选择都城的考虑也不外乎经济、形胜、交通和统治集团发轫的地域背景等条件,不过没有后代那样周全,主要是商周时期还不是强有力的大一统时代,对全境的控制强度还不很大,都城选择的余地有限。同时商周王朝的周围还存在许多部族和部族联盟,战争是当时政权的主要任务。选择都城主要着眼于保存自己(生存)和扩大军事影响(发展)。因此形胜和交通条件成为选择都城位置主要考虑。
商代曾多次迁都,据《古本竹书纪年》、《史记•殷本纪》载,“自契至汤八迁。汤始居亳”,关于八迁的具体地点,文献上没有明确记载。据王国维的考证有著、砥石、商、商丘、殷等地,不过当时商王朝尚未建立,不能算迁都,只是商民族的迁移,所迁不是一个城市,而是一个地区。成汤开始建立了商王朝,才算是迁都,自汤至盘庚凡五迁都。自盘庚迁都殷墟即今安阳小屯村后,273年更不迁都。
上述五迁的都城的名称有亳、嚣、相,庇(或作邢)、奄、殷等,成汤所居的亳是最重要的一个都城,现主要有二说:一说认为即偃师商城,一说认为是郑州商城,但无论何者,都处在黄河以南东西交通大道上。嚣,一说在今河南郑州西北古荣镇北敖山,一说在开封,也都是东西交通大道上;相在今河南内黄境看法比较一致;庇,丁山说在今山东定陶一带;邢,一说在今河南温县,一说在河北邢台;奄,传统说在今山东曲阜,今人认为在河南新乡市;殷在今河南安阳小屯村已无异说。还有一个商朝晚期别都沫,即今河南淇县。
总之,以上各都位置有两个特点,一是靠近黄河,是为了生存需要,一是地处东西、南北交通大道上,有利于发展,同时都不出商朝的统治中心区在今河北省西南部和河南省北、中部。
西周自周文王自岐迁都于丰,周武王灭商后迁都镐,丰和镐都在渭河平原中部,水源丰沛,土地肥沃,对农业起家的周民族来说是最理想的建都地点,其自西向东迁移,明显是为了向东扩展的需要。周武王灭殷以后,对东方旧殷贵族势力,放心不下,于是决定在丰以东,另建一个政治中心,以控制东方。他考察了洛邑周围的地理环境,认为嵩山、黄河、伊、洛河的环绕,又是“天下之中,四方入贡道里均”,是为形胜之地,于是决定在此营建洛邑,并迁象征政权的九鼎于洛邑,但尚未正式建都。
到了成王和周公时代,经过了勘察、规划和占卜,才正式对洛邑进行建设,建成后称为成周,取成王所都之意。自后镐京为首都,成周为陪都。西周末年幽王为犬戎所杀,平王东迁,史称东周,这时成周洛邑才成为首都。西周王朝的统治中心区就在黄河中游的关中渭河平原和伊洛河盆地,在此范围内选择都城,渭河平原中部的长安和伊洛河盆地的洛阳必然是首选。长安有四塞之固,洛阳为“天下之中”,有水陆交通之便,一守一攻,一进一退,相得益彰。所以后代凡是都长安的政权,多以洛阳为陪都,凡都洛阳的政权,常以长安为陪都,汉唐即是。