Я хочу, чтобы страница «Незавершенная работа» была доступна для большей части Интернета, при этом разрешив доступ к самому сайту с нескольких конкретных тестовых IP-адресов.
Возможно ли это с IIS 7? Как бы вы это сделали?
Вы можете использовать модуль IP и ограничения домена или загрузить и установить модуль URL Rewrite 2.0 и использовать его. Вот 2 примера:
Я бы, вероятно, выбрал следующую настройку:
С помощью Ограничения по IP и домену
2 сайта:
- www.website.com: без ограничений по IP, контент «в процессе»
- limited.website.com: соответствующие ограничения IP, фактическое содержание
Тогда у меня будет корневой документ (index.aspx, index.php, default.aspx, что угодно), перенаправляющий пользователей с соответствующими IP-адресами, используя Request.UserHostName()
(если .NET) или $_SERVER[REMOTE_ADDR]
(если PHP).
С помощью Перезапись URL Модуль
Возможной альтернативой может быть использование модуля перезаписи URL для перезаписи запросов к веб-сайту со свойством REMOTE_ADDR в качестве условия.
<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>
Это автоматически перезапишет ВСЕ запросы, НЕ поступающие с 4 предопределенных IP-адресов, в /inprogress/default.aspx вместо фактического веб-сайта.