Исключить каталог из переписывающего файла с помощью перезаписи ISAPI - PullRequest
1 голос
/ 19 апреля 2010

Как правило, я недавно добавил приведенное ниже правило в мой httpd.conf для перезаписи ISAPI на сервере IIS, чтобы убедиться, что для него по умолчанию всегда используются имена файлов и каталогов в нижнем регистре.

RewriteRule ^(.*[A-Z].*)$ $1 [CL,R=301,L]

Это нормально и прекрасно для каждой части сайта, за исключением одного каталога, который мы можем назвать /MisbehavingDir, код в этом конкретном каталоге заполнен именами файлов со смешанным регистром и множеством серверных и клиентских сценариев это должно быть переписано, чтобы использовать все строчные буквы, чтобы работать должным образом (с указанным выше RewriteRule, кажется, он ударил пару 301 в неправильных местах, что заставляет эту часть сайта функционировать, мягко говоря).

Поскольку у меня нет настроения переписывать эту часть сайта, я бы хотел найти хороший способ изменить приведенное выше регулярное выражение так, чтобы оно соответствовало всему, кроме путей, начинающихся с MisbehavingDir и поскольку мой regex-fu isn ' Я действительно достаточно хорош, я решил спросить здесь.

Есть ли простое "красивое" решение для этого, которым кто-то хочет поделиться, или я должен просто выделить несколько дней, чтобы переписать приложение, затем протестировать его и пройти весь этот танец?

1 Ответ

2 голосов
/ 19 апреля 2010

Что ж, очевидно, трюк заключался в добавлении оператора перезаписи, который выглядит примерно как RewriteCond %{URL} ^(?!/MisbehavingDir/.*$), чтобы ISAPI переписывал пропустить следующее правило.

...