The defender signed on loan at the start of the season, and with Lee Wallace sidelined through injury, made the left back berth his own with a series of good performances.
And despite reported interest from Championship sides in England, Rangers have moved to tie John up on a permanent basis.
The Welshman has signed a three-and-a-half year deal with the Ibrox side.
Statements from both Cardiff and Rangers confirmed the transfer.
John has made 14 appearances for Rangers this season, scoring two goals - both of which came in a 4-1 win away to Hamilton.
News of John’s signing followed the announcement that Graeme Murty had been appointed manager until the end of the season.