Bypræfekturet Shangluo (商洛; pinyin: Shāngluò Shì) ligger i den østlige del af den kinesiske provins Shaanxi. Præfekturet har et areal på 19.292 km²,, og en befolkning på 2.430.000 mennesker (2007).
Præfekturnavnet går tilbage til Han-dynastiets tid.
Administrativt består Shangluo af et bydistrikt og seks amter:
Kinas rigsvej 312 løber gennem området. Den fører fra Shanghai og ender på grænsen til Kasakhstan, og passerer blandt andet Suzhou, Nanjing, Hefei, Xinyang, Xi'an, Lanzhou, Jiayuguan og Urumqi.