孙 启 祥
(汉中市档案馆, 陕西 汉中 723000)
百牢关是古代金牛蜀道上著名关隘,隋代置关,至清代关名仍存。但是,百牢关究竟位于何处、有无迁徙,古代典籍记载却极不一致,以致后世众说纷纭。黄盛璋《阳平关及其演变》,严耕望《唐代交通图考》,付兴林、马玉霞《元稹入蜀纪行诗及“百牢关”位置考辨》都论述这个问题;周相录《元稹集校注》,刘学锴、余恕诚《李商隐诗歌集解》也涉及这个问题。但是,笔者感到先哲和时贤的一些论述、观点不完全正确,甚至有明显错误。厘清百牢关的变动兴废,对于若干历史事件的考证和众多唐宋诗篇的诠释不无裨益,故笔者不揣浅陋,略抒己见,以就教于方家。
目前所见最早具体记载百牢关位置及其演变的典籍是唐代中期的《元和郡县图志·山南道三·兴元府·西县》:“百牢关,在县西南三十步。隋置白马关,后以黎阳有白马关,改名百牢关。自京师趣剑南,达淮左,皆由此也。”560-561稍早的《通典·州郡五·古梁州上·汉中郡·西县》亦曰:“隋置关在县西南,今名百牢关。”4578宋人所修的《新唐书》卷四〇《地理志》中也有兴元府西县“西南有百牢关”的记载。而南宋的《舆地纪胜》和《方舆胜览》却曰百牢关在西县西南三十里。究竟是“三十步”还是“三十里”,后人莫衷一是。其实,根据关名演变和地形特点能做出初步判断,再揆之以相关史料,可以得出结论:唐开元之前,百牢关在西县西南三十步而非三十里。
百牢关由白马关更名而来,而白马关得名于其原设于白马城附近。据《三国志》《水经注》等文献记载,东汉建安后期,以政教合一而割据汉中近三十年的五斗米道教主张鲁,为抵御曹操的进攻,在沔阳(今陕西勉县东)之西白马塞山上“横山筑城十余里”45,谓之阳平关。蜀汉时阳平关城迁建于山下,因地处白马塞之东麓、古浕水入汉水口之东岸,南北朝时称白马城、浕口城 。“白马”之名源于其地原为白马氐所居;浕水亦称白马河,今名咸河。白马城故址在今勉县西武侯镇之南。
隋大业中由北魏嶓冢县更名而来的西县,其建置一直存在到元代至元年间,而西县唐代以后的治所即在故白马城。百牢关位于西县西南三十步,即大约六十米,其位置当在紧邻白马城的白马塞(今名走马岭)下。这里是汉末曹操战张鲁、刘备战曹操的古战场,是两晋南北朝时期晋、成汉、前秦、后秦、宋、齐、梁、北魏、氐族杨氏争夺汉中的要塞,是金牛道北端入山口、故道南端出山口,自唐代都城长安,行褒斜道、历百牢关、经金牛道可达巴蜀。行故道、越百牢关、循汉水可通江淮,故曰“自京师趣剑南,达淮左,皆由此也”。
百牢关位于西县城侧,诸多史料皆可印证。据严耕望先生考证,百牢关之记载最早见于《续高僧传·法琳传》,法琳贞观中得罪,“敕徙于益部僧寺。行至百牢关菩提寺,因病而卒。……沙门慧序经理所苦……序本雍州武功人,本住京辇,后移梁益。以百牢冲会,四方所归,道俗栖投,往还莫寄。序乃宅寺关口,用接远宾,故行旅赖之,咏歌盈耳。”其中“百牢冲会”“宅寺关口”等描述,正是西县城附近地形、位置的特点。这里汉水、浕水两水交汇,故道、金牛道与汉中川道三路相接[注]①西县以东至褒谷口之汉中川道,亦可归入金牛道,此处为体现关口之地形特点,将川道视为另一条道路。,是平川进入山地的交通要道,为名副其实的“冲会”“关口”(参见图1)。《三国志》之《姜维传》就有此地为“关口”之记载[注]②《三国志》卷四四《蜀书·姜维传》:“(姜维表后主)宜并遣张翼、廖化诸军分护阳安关口、阴平桥头以防未然……钟会攻围汉、乐二城,遣别将进攻关口。”。
图1 西县附近山川形势图
北宋大中祥符年间和南宋淳熙年间,汉中先后编撰有《兴元府图经》《大安军旧图经》《大安军图经》和《梁州图经》等地方志书,内中也有关于百牢关的记载,惜各图经今已亡佚。所幸北宋吕大防《分门集注杜工部诗》、清乾嘉年间杨伦《杜诗镜铨》、嘉庆《续修汉南郡志》援引有关内容,其中以《景宋本分门集注杜工部诗》所引最为详尽:
《图经》云,百牢关,孔明所建。故基在今兴元西县泥口化检玉关山下,傍临白马河,东自梁洋,北自武兴,西入金牛、三泉,皆涉北河以济。河之西南,壁山相对,六十里不断,嶓冢汉江水流其间,与白马河合,缘江乃入金牛、益昌路也,虽不甚险,而为入川之隘口。
文中谓百牢关为“孔明所建”,应是就百牢关的前身阳平关“当在蜀汉魏延镇守汉中后或诸葛亮驻防汉中时”由走马岭山上移置于山下而言,其他关于百牢关位置、环境的描述,与实地完全吻合。“泥口化”应为“濜口化”之误,因“濜”之俗字“浕”与“泥”形近而误,《舆地纪胜·利州路·兴元府·景物下》“检玉观,在西县一里,本濜口化”4698可证。“濜口化”为道教二十四化之一,又称“濜口治”,是东汉以降对白马塞上原“张鲁治”的称谓。“化”和“治”皆道教术语,按功能说,“化”指宫观建筑,“治”指管理体系。显然,《图经》中百牢关,与《元和郡县图志》中西县“西南三十步”的百牢关位置是一致的。而“河之西南,壁山相对,六十里不断”云云,更是对百牢关以西地貌形胜的准确描述。百牢关以东为开阔平原,只有往西南,方有两山壁立相对、水流其间之地形;按清代人的笔记,从故白马城到唐宋金牛驿路程为九十里,自白马城至新铺、青羊驿一带地势逼仄,道路狭窄,而青羊驿至大安驿约三分之一段道路较为平坦,视野开阔,已无“壁山相对”之特点,“六十里不断”确是从西县城西算起。
严耕望先生在《唐代交通图考》第三卷《通典所记汉中通秦川驿道:散关凤兴汉中道》和第四卷《金牛成都驿道》中,用了较长篇幅对百牢关的位置做了考定,征引广博,笔触深邃,对人很有启发,但他关于百牢关在西县之西三十里沮水入汉水口之东、今土关铺稍西地段的结论及相关论述却属错误。严先生以此地“为东西南北交通枢纽,盖地当凤兴道(即故道——引者)与褒斜道相会入蜀之口”786,实则故道从古至今从不在此与褒斜道(准确地说为金牛道)相会[注]①褒斜道、故道、金牛道概念有广义、狭义之别,且其起止点不同时代、不同著作记述略有差异,但约定俗成以斜谷口至褒谷口(或汉中)为褒斜道,褒谷口(或西县)至成都为金牛道,浕水、沮水入汉水地带不在褒斜道范围内。,这里至今无北通故道之大路。严先生考证“玄宗北返途程,经三泉、金牛两县,不经西县”,说明唐玄宗回銮时由西县西三十里而过787。此论亦不妥。“不经西县”,是因为可从金牛北折行陈平道转入故道(玄宗之前的诗人苏颋和玄宗之后的诗人杜甫都曾经过此道),而不能证明经过了西县西三十里之沮水。严先生谓《景宋本分门集注杜工部诗》卷四中百牢关“傍临白马河”,“此白马河明即今汉水南北两源中之北源沮水”,并以此作为“鄙说之有力证据”867,更是明显错误。白马河是严先生在《通典所记汉中通秦川驿道》中详细论述并绘图说明的浕水,古今皆无异议,不知严先生为何以其为沮水,且言之凿凿。沮水在不同历史时期有过沔水、黑水、黑河之称,与浕水(白马河)从未混淆过。百牢关“傍临白马河”恰恰说明百牢关在西县侧三十步之处。
唐开元以后,百牢关离开西县,被西移至三泉县以西。三泉县始置于唐武德四年( 621)[注]②《太平寰宇记》卷一三三曰三泉县置于后魏正始中,见中华书局,2007年版,第 2619页;《舆地纪胜》卷一九一驳论辨析甚详,见中华书局(影印),1992年版,第 4930页,今从之。,原治所在今四川广元市东北一百五十里处,先后属南安州、利州。天宝元年( 742) ,自西南一百二十里故县徙治所于嘉陵江东一里关城仓陌沙水西[9]2616,地当今陕西宁强县西北阳平关之擂鼓台,属梁州。三泉亦为古金牛道要冲,入蜀必经之地。百牢关移至三泉县的依据有二: 其一是古籍记载,其二是诗人描写。
北宋《元丰九域志》三泉县“古迹”下有百牢关[10]471-183。南宋《舆地纪胜·利州路·大安军·景物下》曰:“百牢关,《九域志》云:汉于此置关。今(三泉)县西古关是也。”4936《方舆胜览·利州东路·大安军》亦曰:“百牢关,在(三泉)县西。汉于此置关。”[11]1199元代《大元大一统志》曰:百牢关,“今三泉旧县西古关是。”[12]这些记载说明,三泉县西曾经设过百牢关。严耕望先生在论及三泉之战略地位时,亦曰:“县当大道,当置驿;但无考。”870设百牢关于三泉县西,可行使驿站的一些职能。至于上述引文中“汉于此置关”云云,系因袭原西县百牢关的历史而又误隋为汉。在唐代之前,从未有这一带置百牢关之记录。
盛唐杜甫,中唐武元衡、郑余庆、元稹,晚唐李商隐、于邺等诗人游历仕宦汉中蜀中,都有咏叹百牢关之作。大历元年(766),杜甫在夔州(今重庆奉节)作《夔州歌十绝句》,其中有“瞿塘险过百牢关”句,并自注“关在汉中西南”[13]2507,说明百牢关为杜甫所历之关隘。而杜甫乾元二年(759)由同谷(今甘肃成县)赴成都时,系翻越兴州(今陕西略阳)西南的飞仙岭,经陈平道抵金牛县(今陕西宁强县东北大安镇),沿金牛道西南行,并不经过西县[注]杜甫同谷纪行诗有《飞仙阁》,飞仙阁位于连接故道与金牛道的支线陈平道北端飞仙岭上,此路不经西县。,且西县在汉中西北,三泉县则位于汉中西南,与杜诗自注一致。西县百牢关处于山口平地,关后道路前引《图经》的描写是“不甚险”,杜甫不会用自己未经历且不险峻的地段与瞿塘夔门比较。元稹元和四年(809)出使剑南,作《百牢关》诗云:“嘉陵江上万重山,何事临江一破颜。自笑只缘任敬仲,等闲身度百牢关。”[13]4569显示百牢关临近嘉陵江,而嘉陵江也正是杜甫入蜀所经。元稹《夜深行》诗:“夜深犹自绕江行,震地江声似鼓声。渐见戍楼疑近驿,百牢关吏火前迎。”[13]4570说明百牢关附近嘉陵江有弯折,需“绕江行”而不是“沿江行”。于邺《过百牢关贻舟中者》诗:“帆影清江水,铃声碧草山。”[13]8316说明百牢关一带江中能行船。
武元衡元和八年(813)由蜀返京,有《元和癸巳余领蜀之七年奉诏征还二月二十八日清明途经百牢关因题石门洞》[13]3551诗,题目作“途经百牢关因题石门洞”,而其行踪为由西而东(或由南而北),说明百牢关在石门洞之西(或南),且相距不远。武元衡此行由金牛道经兴元府(今陕西汉中)入傥骆道返京,此道利州(今四川广元)至兴元沿途,只有载入《舆地纪胜》的龙门洞属“石门洞”,且广有游人题咏。龙门洞是一座天然溶洞,洞高五至十米,深七十余米,风光宜人,景致幽邃,文人墨客,“过未尝不游,游未尝不饮酒赋诗而去”[注]苏在廷:《龙洞记》,陈显远《汉中碑石》,三秦出版社,1996年版,第117页。原为碑文,碑犹在。,宋代文彦博、宋祁、赵抃、陆游等均在此洞吟诗勒石。在武元衡于石门洞题诗之后,兴元府知府郑余庆有和诗《和黄门相公诏还题石门洞》诗,诗中有“地分三蜀限,关志百牢名”[13]3582,也涉及石门洞的方位和它与百牢关的关系。龙门洞在唐宋三泉县西二里,嘉陵江边、金牛道上,越龙门洞继续前行三十多里,江北就是南北朝时的除口戍、宋代的青乌镇(今陕西宁强县燕子碥镇西北)。古燕子河(今称康宁河)在此汇入嘉陵江,嘉陵江由自东而西流折向自北而南流,当地人称岛湾,江面东西两岸山峰陡起,蔚为壮观,素称“蜀口”[注]王象之《舆地纪胜》卷一九一《利州路·大安军》:“中兴以来,诸将屯三泉以护蜀口。”中华书局,1992年版,第4932页。,故郑余庆有“地分三蜀限”之谓,其气势与夔门无二,只是雄险略逊一筹,所以杜甫说“瞿塘险过百牢关”。
综合上述史料初步认定,今燕子碥镇偏西嘉陵江拐弯处之南应即“三泉县西”之百牢关所在(参见图2)。此地东距三泉县四十里,其位置、地形,既与地理典籍所载一致,也与杜甫、武元衡、元稹诗意吻合。嘉陵江自古为秦蜀水路,三泉县有水路重要码头,现仍有遗迹可寻。于邺“帆影清江水,铃声碧草山”[13]8316诗,就是唐末嘉陵江百牢关段水运的写照。百牢关由西县移至三泉县的年代,在唐开元天宝年间。古代金牛道北段各个历史时期经由路线不同,大抵秦汉时经白水关、唐宋时循嘉陵江、明清后越五丁关[注]参见李之勤《金牛道北段线路的变迁与优化》,《中国历史地理论丛》,2004年第2期,第47-58页;孙启祥《金牛古道演变考》,《历史地理》第23辑,上海人民出版社,2008年版,第313-315页。。秦汉时期,这段道路上设有白水关(在今四川青川县东北),唐代改行嘉陵江后,白水关随之废弃。开元十八年(730),金牛县治所由通谷镇徙至白土店2616-2617(今陕西宁强县西北大安镇)。天宝元年(742),三泉县治所自西南移至关城之西(见前文)。金牛道北端道路的改移、县治的变化,必然引起行政和防卫机构的格局调整。同时,鉴于在大唐一统天下的新形势下,原位于西县特殊路段的百牢关的功能也已丧失,于是,将百牢关移至三泉县西,以行使原白水关的职能,也与杨国忠为相后着力经营自己发迹的剑南的行为一致。所以,百牢关移至嘉陵江滨的年代,应在开元天宝年间,而非一些学者认为的唐代后期或末期。
图2 金牛道北段关隘示意图
之所以有唐代后期或末期之说,是因为如前所引,成书于元和八年(813)的《元和郡县图志》无三泉县之西百牢关的记载,而曰在西县西南。对此,笔者认为,《元和郡县图志》中百牢关的位置,是开元前而非元和中之位置。古代地理书中地名变化之记载滞后于实际变动之事例很多,《元和郡县图志》之所以出现这种现象,一则因李吉甫长期在东南为官,不谙西南地理;二则其书有“不免因循旧说,失于考核”3之弊病,百牢关之记载应属因循旧说、失于考核。李吉甫未身履百牢关,对其位置变动未能反映也在情理之中。在《元和郡县图志》成书之前和成书期间杜甫乾元二年、元稹元和四年、武元衡元和八年、郑余庆元和九年亲历百牢关留下的记述,应属可信。
黄盛璋先生谓“中唐以后,百牢关位置曾经向西南移动”[14]52,“百牢关的移动距元和四年不远”[14]53,固然照顾了《元和郡县图志》等史籍的记载,却与诗人的实地描写不一致。黄先生以元稹《元氏长庆集》中《百牢关》诗排列在《漫天关赠僧》之前而推定百牢关“其位置当在大小漫天之南”[14]52,不确。其实《元氏长庆集》非编年体著作,其中诗歌以古诗、律诗、乐府等体裁分类排列,诗文顺序不足以体现经历之先后,就连《使东川》组诗(《百牢关》《漫天关赠僧》就在其中),同一时段、描写同一景物的诗也不排列在一起[注]元稹出使东川始于元和四年三月七日,《使东川》组诗共录十九题二十二首诗,作者自注云“起骆口驿,尽望驿台”,而第一题《骆口驿二首》中之骆口驿位于自长安入骆谷道之山口,《望驿台》题下又自注“三月尽”,显示此诗亦作于入蜀途中,进而给人造成整组诗以时间、地点为序的印象,其实不然。二十二首诗中,尽管首尾二题皆入蜀途中所作,但其中却夹有返长安时作品,如第十四题《嘉陵江二首》:“千里嘉陵江水声,何年重绕此江行。”第十五题《西县驿》“去时楼上清明夜,月照楼前撩乱花。今日成阴复成子,可怜春尽未还家”等描写,则是返程时口吻。说明《使东川》不以时间、地点排序。如第五题《南秦雪》曰:“帝城寒尽临寒食,骆谷春深未有春……青骢御史上南秦。”表明作于秦岭深处的骆谷道上,应紧接第一题《骆口驿二首》,但居于其间的第二题《清明日》作者自注已“行至汉上”,第三题《亚枝红》写汉中平川“褒城驿池岸竹间”之亚枝,第四题《梁州梦》也“身在古梁州”。《汉江上笛》和《西县驿》皆作于西县,但分列第九题、第十五题。《百牢关》和《夜深行》皆作于百牢关,但分列第十二题、第十八题。见《元氏长庆集》卷一七,文渊阁四库全书本,上海古籍出版社(影印),1984年版,页1079-437——1079-439。。付兴林等先生在《元稹入蜀纪行诗及“百牢关”位置考辨》中,用大量资料论证
元稹诗中的白马关和百牢关是两个地方,百牢关位于嘉陵江滨[15],论据充分,甚为可信。但文中推测百牢关在嘉陵江东岸靠近秦蜀交界的七盘岭处却使人难以信服,一则没有史料依据,二则与古诗意境也不相合。为考证杜甫、岑参诗中五盘岭(亦即七盘岭)的位置,笔者曾沿这段嘉陵江边踏考四次,七盘岭在丛山之中。细玩元稹“嘉陵江上万重山,何事临江一破颜”诗意,百牢关应在旅途中接近嘉陵江或沿嘉陵江前行不远处,不在“万重山”中、嘉陵江纵深处的七盘岭。“夜深犹自绕江行”,说明道路随着嘉陵江弯弯曲曲,而七盘岭前后几十公里内嘉陵江都是由北向南直流,不能“绕江行”。《元稹集校注》以张述林等《剑门关志·蜀道·金牛新道》中“(七盘)岭为秦蜀分界处亦称百牢关”作为“百牢关,在今四川广元北”[16]494的依据更属错误。《剑门关志》中的金牛新道大体即今川陕公路成都至汉中段,此路川陕交界处的七盘岭乃道路变迁后对嘉陵江边地名的讹用[17]31,与元稹诗中的百牢关无涉。张述林等谓秦蜀交界处的七盘岭亦称百牢关为臆断。现今越五丁关,经宁强县到达广元的道路,是元明以后开辟的,非杜甫、元稹、李商隐等所行之道。
隋唐时,百牢关无论在西县西南时或三泉县之西时,都具有“关”之实,即有稽查行旅的职责,有履行职权的关吏,有相应的建筑设施。《隋书·地理志》曰西县“有关官”[18]817,元稹诗“渐见戍楼疑近驿,百牢关吏火前迎”都体现了这些特点。唐末五代的混乱及战争,汉中、巴蜀成为重灾区,许多建筑设施遭到毁灭性破坏。到了宋代,百牢关已无置“关”之实,遗迹也渺然难寻。虽然《元丰九域志》三泉县“古迹”中有百牢关,但利州路的总述却为:“府一,州九,县三十九,关一。”[19]353一关为剑门关,列专目记述,而百牢关等只在对应的县下提及,表明它们只是“古迹”地名。因此,就百牢关出现了一种很奇特的现象,一方面宋代的地理总志、地方志书都做了记述,另一方面当时文人的笔下却未见提及,就连赵抃、陆游这些多次经过金牛道的文人,诗文中也不见百牢关,这也是百牢关已不是“关”的佐证。因为地理书、地方志根据档案资料记录历史,而诗人一般歌咏所历所见,只留下名称的百牢关,未引起文人雅士的注意。黄盛璋先生以三泉百牢关为“宋百牢关”[14]53,并不准确。
也正因为只是地名,且位置变动,宋以后地理总志、地方志书中关于百牢关的记载就混乱纷繁、正误掺杂。
《太平寰宇记·山南西道一》两处记载百牢关,错讹连出。在“褒城县”条下载:“废金牛县,在州西一百八十里。本汉褒县地,唐开元十八年,按察使韩朝宗自县西四十里故县移在白土店置,即今县是。南临东汉水,西临陈平水。其旧县即汉葭萌县地,东晋孝武分葭萌置绵谷县,唐武德二年分绵谷县,于通谷镇置金牛县。县废后,于故城置百牢关,唐末废入褒城县焉。”2616-2617在“西县”条下载:“百牢关在县西南,隋开皇中置。以蜀路险,故曰百牢关。一云置在百牢谷。”2681在同一卷书中,记载了三处(或两处)百牢关地址,显示资料来源庞杂,莫辨真伪,实不知百牢关在何处。又曰金牛县在汉代属褒县(应为褒中县),唐末废入褒城县,均属误记。金牛和褒城相距很远,两地之间汉代设有沔阳县,唐代设有西县,几县基本在同一纬度,根本不能跨区域连在一起。这个错误可能源于作者将唐初置废褒州的历史与褒中县搅在了一起(两者无关)。金牛县废于宝历元年(825),县废后,以故城为金牛镇而非百牢关[20]967,后又为金牛驿。严耕望先生发现了于“金牛废县置百牢关”这个错误,但为了弥合史料,作了“是后曾移关于此,必唐末五代时事”866的推测。实则原记载本身不确,不宜再做推论。宝历元年后移百牢关于故金牛城,既与其他史料不合,也无法理解杜甫、武元衡、元稹等人的相关诗作。
北宋的《太平寰宇记》对百牢关的位置不甚了了,到南宋时就更混乱。《舆地纪胜》和《方舆胜览》在“兴元府西县”“大安军三泉县”下都有“百牢关”释文,亦有“西县西南”,三泉县“汉置关”等内容,[注]王象之《舆地纪胜》卷一八三:“隋置关在(西)县西南,今名百牢关。”卷一九二:“百牢关,《九域志》云:汉于此置关。今(三泉)县西古关是也。”第4682、4936页。祝穆撰,施和金点校《方舆胜览》卷六六:“百牢关,在西县三十里。”卷六八:“百牢关,在(三泉)县西。汉于此置关。” 中华书局,2003年版,第1150、1199页。尽管属于误释、因袭,但也与此时百牢关只是地名、遗迹难觅有关。“汉置关”是《元和郡县图志》“隋置关”之误,而“三十里”是鉴于关址西移,妄改《元和郡县图志》的“三十步”而致。
史籍中关于百牢关的记载之所以混乱、抵牾,与以下几个因素有关:
(一)关址变化后名称仍留在原地。百牢关尽管在盛唐时已迁离故地,但在西县作为地名却存在了下去,人们还习惯称原地为百牢关。所以《分门集注杜工部诗》和嘉庆《续修汉南郡志》援引的《图经》中,才有“百牢关故基”云云[注]嘉庆《汉南续修郡志》卷三《关隘》:“李商隐诗‘莓苔滑百牢’。《图经》云:百牢关故基,在今兴元西县西南,两壁山相对,六十里不断,汉江水流其中。乃入金牛峡、益昌路也。”,显示百牢关已成历史但未被遗忘。直到宋元之际胡三省注《资治通鉴》,仍有“或曰,阳平关即今兴元百牢关是也”[21]2138之谓。
(二)西县和三泉县治所、归属屡变。西县治所原在故白马城东南,唐武德八年(625)方徙于白马城。而在武德三年(620),曾以西县置褒州,并以金牛县来属。八年废褒州后,西县归属梁州。三泉县治所也在唐初迁徙,且先后属南安州、利州、梁州。到了宋初,西县、三泉县直属朝廷,与路、府、州关系疏远。至道二年(996),以三泉县建大安军,西县来属,次年又废军,以三泉县直隶京师如故,而西县归兴元府。绍兴三年(1133),复以三泉县为大安军。这些频繁地变化,莫说后世人,就连当时人可能都难以理出头绪,同时也会带来文书资料的错乱。所以,地理典籍中一些记载滞后于事件变化甚或错误也就难以避免,中唐的《元和郡县图志》记初唐时百牢关的位置应与这些因素有关。
(三)金牛道路线和交通形式变化。与蜀道的其他道路路线变化不大显著不同的是,金牛道北段中部秦汉时、唐宋时、明清时路线完全不同。而就在唐宋时,从三泉至利州尽管都沿嘉陵江南下,但唐代以陆路为主,宋代特别是南宋则以水路为主,乾道年间陆游就“自三泉泛嘉陵至利州”[22]245“泛舟自三泉至益昌”[22]262。这些变化,都对后世探究古迹、著书立说带来困难,继而出现张冠李戴、郢书燕说。明成化年间设置宁羌州(今陕西宁强)时,三泉县已废二百年,因两者辖区大部相同,后世不察,将原三泉县城周边的许多地名、掌故记入宁羌州,于是一些地方志中又有了宁羌州西南百牢关的记载。清代大学者王士禛在《蜀道驿程记》和《秦蜀驿程后记》中,均记宁羌州之西南有百牢关,并引用《元和郡县图志》中的相关文字,明显是误将唐宋金牛道三泉县之西的百牢关记在了明清金牛道宁羌州之西南(两《记》中的百牢关实为牢固关)。其他学者也出现类似问题。此外,王氏还误以金牛驿为大安驿,为故三泉县、大安军。这些现象都从一个侧面反映了金牛道、百牢关问题的复杂性。