The former England goalkeeper, who has made 67 appearances for Rangers, joined the club on a free transfer in 2012. The 34-year-old was voted man of the match after the Championship play-off victory over Derby County.
“I'm really pleased to have signed the contract," he told the club's website
“The first thing on my mind, after relaxing and enjoying winning promotion, was to get my future sorted, so I'm delighted we've managed to get everything done ahead of pre-season.
“At the start of last season all I was focused on was playing football - thankfully that happened and we got promoted at the end of it all. This season is very much the same. I want to play week in, week out.
“We want to aim high, but we won't get carried away. We learnt a lot of lessons last time, so we will keep our targets in-house and be fully focused on the season ahead. We can’t underestimate the difficulties of the Premier League.”
Clint Hill, Armand Traore and Alejandro Faurlin have already agreed new deals at Loftus Road this summer.