Конечная косая черта IIS 7, кажется, конфликтует с моим правилом перезаписи URL - PullRequest
2 голосов
/ 29 февраля 2012

Я только начинаю работать с URL Rewrite 2.0 в c # .net web.config.Мой web.config выглядит так:

<rewrite>
  <rules>
    <rule name="RemoveTrailingSlashRule2" stopProcessing="true">
      <match url="(.*)/$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      </conditions>
    <action type="Redirect" url="{R:1}" />
  </rule>
 </rules>
</rewrite>

Это должно удалить косую черту в URL.Когда я запускаю приложение, правило работает на корневом уровне, поэтому это ...

www.mysite.com/

... перенаправляется на ...

www.mysite.com/

...но перенаправление не работает на других уровнях.

Так что проблема в том, что это ...

www.mysite.com/pages/

... заканчивается косой чертой, остающейся на месте, и еслиЯ пытаюсь это сделать ...

www.mysite.com/pages

... конечный слеш фактически ДОБАВЛЕН.

Я предполагаю, что это "завершающий слеш вежливости", который добавляет IIS 7, но яНе знаете, как получить правило перезаписи URL, чтобы переопределить его?

1 Ответ

1 голос
/ 03 мая 2013

Я знаю, что это год, но у меня возникла та же проблема, поэтому я решил опубликовать решение.

Проблема:

<match url="(.*)/$" />

должно быть

<match url="(.*)\/$" />

Как только это изменилось, все работает.

...