Символ плюса +
в URL означает ПРОБЕЛ (такой же, как %20
).
1. На основании вышеизложенного попробуйте это: ^search/([-_0-9a-z\+ ]+)
2. Если вы видите ошибку 404, как это:
Ошибка HTTP 404.11 - не найдена
Модуль фильтрации запросов настроен на отклонение запроса, который
содержит двойную escape-последовательность.
- перейдите в IIS Manager, откройте Модуль фильтра запросов (глобальный .. или модуль для определенного сайта)
- выберите Изменить параметры функции в боковом столбце (или через контекстное меню)
- галочка Разрешить двойное экранирование
или используйте этот код (поместите где-нибудь в web.config в корневой папке сайта):
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
Если # 1 не работает, тогда выполните # 1 И # 2.
ПРОВЕРЕНО на IIS 7.5 - отлично работает .