Исключение каталога с ISAPI-Rewrite - PullRequest
1 голос
/ 19 мая 2009

Я пытаюсь исключить каталог с ISAPI-Rewrite (примечание: это порт windows / iis mod-rewrite).

Каталог, который я хочу исключить, - это "api", когда он находится в корне сайта.

Вот мое правило:

RewriteRule ^ (/ api /)(.+)$ $ 1 $ 2 [NC, L]

Запрос будет выглядеть примерно так: / API / v2 / пользователей? Логины = scottw

К сожалению, значение квест-строки всегда исключается, а URL переписывается как / api / v2 / users.

Я атакую, предполагая, что (. +) Захватит все остальное.

Есть предложения? Или лучший способ исключить каталог?

Спасибо

Обновление : Я также упростил правило, но это тоже ничего не изменило:

RewriteRule ^ (/ api /.+)$ $ 1

Ответы [ 2 ]

2 голосов
/ 19 мая 2009

Оказывается, здесь происходят две вещи:

  1. Регулярное выражение должно быть ^ (api /), а не ^ (/ api). Первый знак "/" исключен.
  2. Средство синтаксического анализа regex, которое поставляется с ISAPI_Rewrite, похоже, неправильно обрабатывает строки запросов.

Правило, которое в конечном итоге работает:

RewriteRule ^(api/.+) $1 [NC,L]
0 голосов
/ 19 мая 2009

Я видел, как иногда ". +" Работает странно, вы можете попробовать переключиться на ".. *" Я не говорю, что это сработает, но, возможно, стоит попробовать.

...