2008-11-18 4 views
49

Для моего веб-сайта IIS я бы хотел перенаправить ВСЕ запросы на одну страницу. Целью этого является то, что я хочу сделать некоторое обслуживание в базе данных (возьмите его в автономном режиме), что все мои веб-приложения используют. У меня около 50 веб-приложений, работающих под этим веб-сайтом, поэтому я бы хотел не посещать каждого из них, чтобы что-то изменить. Я думаю, что могу сделать одно изменение в machine.config? Любые намеки будут оценены.IIS: перенаправить ВСЕ запросы на одну страницу?

ответ

10

Сделать все страницы недоступными, возможно, остановить текущий веб-сайт и создать на его месте совершенно новый совершенно пустой сайт. Затем создайте страницу ошибок для ошибки 404 (файл ot found). Пользовательские ошибки - это вкладка в диалоговом окне свойств веб-сайта в IIS. Просто создайте страницу, которую вы хотите отправить, затем измените запись для 404 на вкладке пользовательских ошибок, чтобы указать на новый файл, который вы только что создали.

+0

Это было отличное предложение и работало на моем большом приложении .NET/classic ASP. Очень легко реализовать. – Mike 2012-09-23 17:15:00

+1

Существует большая проблема с этим, хотя эстетически пользовательский интерфейс будет работать, если у вас будет поисковая система, сканирующая ваш сайт, она вдруг получит кучу 404 и удалит контент из результатов поиска. – Talon 2015-05-15 10:13:40

80

Если вы используете ASP.NET 2.0 (или выше), вы можете удалить страницу app_offline.htm в корне.

More info here.

+0

Это круто, я этого не знал. Хотя наши сайты на работе - это смесь страниц aspx и htm, поэтому для нас это не сработает. – pipTheGeek 2008-11-18 22:48:29

36

в WebConfig

<rewrite> 
     <rules> 
      <rule name="redirect all requests" stopProcessing="true"> 
       <match url="^(.*)$" ignoreCase="false" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" /> 
       </conditions> 
       <action type="Rewrite" url="index.php" appendQueryString="true" /> 
      </rule> 
     </rules> 
    </rewrite> 
1

Вы могли бы создать новый сайт в IIS с привязкой к порту 80 с пустым хост-заголовка (так же, как по умолчанию сайта), а затем остановить другой сайт (ы)? Таким образом, все запросы будут обрабатываться новым сайтом, который может быть просто статической HTML-страницей, уведомляющей пользователей о том, что сайт не работает для обслуживания.

Смежные вопросы