Você pode utilizar o módulo IP e Restrições de domínio, ou baixar e instalar o módulo URL Rewrite 2.0 e usá-lo. Aqui estão dois exemplos:
Eu provavelmente usaria a seguinte configuração:
Usando Restrições de IP e domínio
2 sites:
- www.website.com: No IP restrictions, "Work in progress" content
- restricted.website.com: Appropriate IP restrictions, actual content
Eu teria então o documento raiz (index.aspx, index.php, default.aspx, whatever), redirecionaria os usuários com os endereços IP apropriados, usando Request.UserHostName()
(se .NET) ou $_SERVER[REMOTE_ADDR]
(se PHP).
Usando o módulo URL Rewrite
Uma alternativa possível seria usar o módulo de regravação de URL para reescrever solicitações para o site, com a propriedade REMOTE_ADDR como condição.
<rule name="ip-rewrite" stopProcessing="true">
<match url="website.com" />
<conditions logicalGrouping="MatchAny">
<add input="{REMOTE_ADDR}" pattern="127.0.0.1" negate="true" />
<add input="{REMOTE_ADDR}" pattern="123.55.44.16" negate="true" />
<add input="{REMOTE_ADDR}" pattern="23.34.48.8" negate="true" />
<add input="{REMOTE_ADDR}" pattern="201.0.245.13" negate="true" />
</conditions>
<action type="Rewrite" url="http://www.website.com/inprogress/default.aspx" appendQueryString="false" />
</rule>
Isso reescreverá automaticamente TODAS as solicitações que NÃO vierem dos 4 endereços IP predefinidos, para /inprogress/default.aspx, em vez do site real