The highly rated 19-year-old winger joined United a year ago for a fee that could reach 41 million euros ($46 million, £34 million) with add-ons.
Diallo made eight appearances last season and was set to join Dutch club Feyenoord on a season-long loan in August, only for a thigh injury to scupper that move.
The Ivory Coast international has only played one first-team match for United since returning to fitness.
He has faced stiff competition for places in the wide positions at Old Trafford and has found himself behind Marcus Rashford, Mason Greenwood, Jadon Sancho and Anthony Elanga in the pecking order.
“I am delighted to join Rangers until the end of the season,” said Diallo.
“It is fantastic for me at this stage of my career to have the opportunity to come to such a big club that is challenging on a number of fronts and will give me some excellent opportunities to test myself in many environments.”
Rangers lead rivals Celtic by four points at the top of the Scottish Premiership and face Borussia Dortmund in the last 32 of the Europa League next month.
“I am really pleased to add Amad to our squad for the rest of the season,” said Rangers manager Giovanni van Bronckhorst.
“He is a player who I have been aware of for some time, and when the opportunity to sign him came up, we very keen to make it happen.
“He will add a lot to our squad and provide even more competition for the players in the forward areas.”
Diallo could make his debut as early as Saturday when Rangers visit Ross County before a huge clash with Celtic on Wednesday.