A maneira que eu faço é ter duas cópias do meu site, uma que é ao vivo e outra que é desenvolvimento. Eu faço um svn checkout no meu desenvolvimento e testo lá, e quando as mudanças são testadas e prontas rssync elas para o meu ambiente ao vivo.
Ter uma página de manutenção porque você está fazendo alterações realmente não deveria ser necessário, a menos que você esteja fazendo alterações, por exemplo, em um banco de dados no qual as consultas levam vários minutos para serem executadas.
Mas, para responder à sua pergunta real, os blocos de localização não se importam com quem está solicitando a página, apenas sobre o URI. Uma solução seria usar o módulo de acesso para negar acesso a qualquer um que não você e, em seguida, definir a página de erro como uma página de manutenção.