ASP.NET httpRedirect: перенаправить все страницы, кроме одной - PullRequest
22 голосов
/ 07 сентября 2011

Я использую этот код в файле web.config в одной из папок моего сайта, чтобы перенаправить все страницы в корень, потому что я хочу навсегда закрыть этот раздел.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <location>
    <system.webServer>
      <httpRedirect enabled="true" destination="http://www.example.com/" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
</configuration>

Но мне нужно сделать исключение из этого правила: я не хочу, чтобы моя страница "default.aspx" была перенаправлена. Как я могу это сделать?

Ответы [ 2 ]

38 голосов
/ 19 мая 2012

Поместите свой Default.aspx как <location> с отключенным httpRedirect.Неважно, если вы поставите <location> до или после <system.webServer>.

<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="http://www.example.com/" exactDestination="true" httpResponseStatus="Permanent" />
    </system.webServer>
    <location path="Default.aspx">
        <system.webServer>
            <httpRedirect enabled="false" />
        </system.webServer>
    </location>
</configuration>
12 голосов
/ 07 сентября 2011

Вы можете добавить подстановочный знак следующим образом, чтобы перенаправить только определенные файлы:

    <configuration>
       <system.webServer>
          <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
             <add wildcard="*.php" destination="/default.htm" />
          </httpRedirect>
       </system.webServer>
    </configuration>

Но я не уверен, что вы можете отрицать это, чтобы он игнорировал определенный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...