Регулярные выражения в модуле перезаписи URL для IIS7 - PullRequest
4 голосов
/ 16 марта 2010

У меня есть следующее правило перезаписи, чтобы добавить расширение .aspx, если URL не имеет расширения.

     <rule name="SimpleRewrite" stopProcessing="true">
         <match url="^(.*(?&lt;=/)([^/.]*))$" />
         <action type="Rewrite" url="{R:1}.aspx" />
     </rule>

Однако правило не работает:

Error HTTP 500.52 - URL Rewrite Module Error.
The expression "^(.*(?<=/)([^/.]*))$" has an invalid syntax.

Однако это регулярное выражение работает в .NET. Какие регулярные выражения поддерживаются модулем перезаписи IIS Url? Как сделать позитивный взгляд за утверждением?

Ответы [ 2 ]

2 голосов
/ 18 марта 2010

возможно .*/[^/.]+$ будет служить вашим потребностям? переписать будет просто "{R: 0} .aspx"

edit (в ответ на комментарий): если вы хотите включить простые имена файлов, вы можете написать

^(.*/)?[^/.]+$
1 голос
/ 18 марта 2010

Похоже, что может быть более простое решение вашей проблемы, которое не требует регулярных выражений, но если нет, то это может помочь.

Быстро: попробуйте плагин IIS для клонирования модов, например ISAPI_Rewrite Lite для сложных регулярных выражений.

Long: Примерно год назад я делал развертывание на МКС сайта Drupal, в котором все первичные, вторичные и, как я полагаю, третичные ссылки должны были обрабатываться Drupal, но более глубокое устаревшее содержимое было должен обслуживаться как обычно (вместо того, чтобы быть захваченным Drupal 404).

Мы использовали ISAPI_Rewrite 3, «порт» (совместимый синтаксис) mod_rewrite в Apache, для направления между устаревшим контентом и drupal, с серией фильтров и правил перезаписи, которые проверяли бы любой контент, соответствующий URL в унаследованном папку, прежде чем позволить Drupal обрабатывать все остальное.

http://www.helicontech.com/isapi_rewrite/

ISAPI_Rewrite Lite бесплатен и обладает всеми необходимыми мне функциями. Кроме того, вы можете ходить по магазинам, Helicon - не единственная компания, которая создала плагин клонирования Mod-Rewrite для IIS.

...